मेरे पास एक मॉडल है जिसके लिए मैं सहेजने की विधि को ओवरराइड करता हूं ताकि कुछ डेटा में सेव विधि को पारित किया जा सके और सहेजने से पहले एक फ़ील्ड भरें। यहाँ मेरी मॉडल है:Django ओवरराइड करें
class AccountModel(models.Model):
account = models.ForeignKey(Account)
def save(self, request=None, *args, **kwargs):
if request:
self.account = request.session['account']
super(AccountModel, self).save(*args, **kwargs)
class Meta:
abstract = True
विचार है मैं वस्तुओं किसी खाते से संबद्ध किए जाने की जरूरत है और फिर मैं खाते कनेक्शन के साथ हर बार जब वे आते हैं निपटने के लिए नहीं होगा के लिए एक बेस मॉडल की स्थापना की (जो बहुत है)। लेकिन मैं get_or_create का भी उपयोग करना चाहूंगा, जो अनुरोध में गुजरने के बिना नई वस्तुओं को बचाता है। मुझे पता है कि get_or_create का उपयोग न करने के लिए यह करने योग्य है और इसके बजाय प्रयास करें/छोड़कर, लेकिन मैं जानना चाहता हूं कि get_or_create को ओवरराइड करने का कोई तरीका है और इसे करने का उचित तरीका क्या है।
मैंने प्रबंधक के लिए कोड देखा (जिसे मैं ओवरराइड करना चाहता हूं) और get_or_create फ़ंक्शन बस एक QuerySet get_or_create फ़ंक्शन को कॉल करता है। हो सकता है कि मैं इसे अन्य प्रबंधक कार्यों का उपयोग करने के लिए लिखूं, न कि get_or_create के QuerySet संस्करण? आप क्या सोचते हैं?
इससे मुझे मदद मिली जब मुझे bulk_create() को ओवरराइड करने की आवश्यकता थी। धन्यवाद! – Chad