Django: विशिष्ट मॉडल परिदृश्यों के लिए ओवरराइडिंग सेव विधि
ऐसी स्थितियों में जहां Django मॉडल की सेव विधि को कुछ के आधार पर संशोधित करने की आवश्यकता होती है मानदंड, जैसे कि यह निर्धारित करना कि क्या कोई छवि अपडेट की गई थी या केवल विवरण बदला गया था, एक कस्टम दृष्टिकोण नियोजित किया जा सकता है।
एक तकनीक में एक संपत्ति और एक ध्वज का उपयोग करना शामिल है:
class Model(model.Model):
_image = models.ImageField(upload_to='folder')
thumb = models.ImageField(upload_to='folder')
description = models.CharField()
def set_image(self, val):
self._image = val
self._image_changed = True
def get_image(self):
return self._image
image = property(get_image, set_image)
def save(self, *args, **kwargs):
if getattr(self, '_image_changed', True):
# Logic for image rescaling
super(Model, self).save(*args, **kwargs)
यह दृष्टिकोण सुनिश्चित करता है कि छवि रीस्केलिंग तर्क केवल तभी ट्रिगर होता है जब '_image_changed' ध्वज सही पर सेट होता है, जो दर्शाता है कि छवि को बदल दिया गया है संशोधित.
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3