आपके समय के लिए धन्यवाद।Django - सहेजने के तरीके को ओवरराइड करते समय पुराने और नए मूल्य के बीच दुविधा की जांच करें
मैं Django 1.4 पर हूं, और मेरे पास निम्न कोड है: यह मेरे Quest
मॉडल के लिए अतिव्यापी बचत विधि है।
@commit_on_success
def save(self, *args, **kwargs):
from ib.quest.models.quest_status_update import QuestStatusUpdate
created = not self.pk
if not created:
quest = Quest.objects.get(pk=self)
# CHECK FOR SOME OLD VALUE
super(Quest, self).save(*args, **kwargs)
मुझे ऐसा करने का एक स्मार्ट तरीका नहीं मिला। यह ऑब्जेक्ट के लिए एक नई क्वेरी बनाने के लिए मुझे बहुत मूर्खतापूर्ण लगता है कि मैं वर्तमान में पुराने इंस्टेंस मान को खोजने के लिए अद्यतन कर रहा हूं।
क्या ऐसा करने का कोई बेहतर तरीका है?
सभी को धन्यवाद। ताकि आप अपने आप ऐसा कर या किसी अन्य क्वेरी से पहले बचाने के लिए प्रदर्शन करने की जरूरत है
फ्रांसिस्को
अद्यतन और सहेजने का संदर्भ क्या है? अर्थात। मॉडल या मॉडलफॉर्म आदि के माध्यम से सीधे एक दृश्य में? – jondykeman
अच्छा, क्या यह वास्तव में प्रासंगिक है? मैं एक उदाहरण अद्यतन करने, सहेजने की विधि पर हूँ। लेकिन वैसे भी, यह कॉल एक दृश्य से बना है, और वहां मैंने 'quest.save()' – Francisco
कहा है, मुझे यकीन नहीं है कि ऐसा करने का एक साफ तरीका है। आप पुराने ऑब्जेक्ट को 'सेव()' विधि में पास कर सकते हैं या इसे 'सेव()' में पूछ सकते हैं जैसा कि आप कर रहे हैं। – Rohan