Wie überschreibe ich die Django-Speichermethode für bestimmte Modellszenarien?

Linda Hamilton
Freigeben: 2024-10-22 16:28:02
Original
230 Leute haben es durchsucht

How to Override Django Save Method for Specific Model Scenarios?

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage