Django: Überschreiben der Speichermethode für bestimmte Modellszenarien
In Situationen, in denen die Speichermethode eines Django-Modells basierend auf bestimmten geändert werden muss B. um festzustellen, ob ein Bild aktualisiert oder nur die Beschreibung geändert wurde, kann ein benutzerdefinierter Ansatz verwendet werden.
Eine Technik beinhaltet die Verwendung einer Eigenschaft und eines Flags:
<code class="python">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)</code>
Dieser Ansatz Stellt sicher, dass die Bildneuskalierungslogik nur dann ausgelöst wird, wenn das Flag „_image_changed“ auf „True“ gesetzt ist, was anzeigt, dass das Bild geändert wurde.
Das obige ist der detaillierte Inhalt vonWie überschreibe ich die Django-Speichermethode für bestimmte Modellszenarien?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!