[PYTHON] Überschreiben Sie die Speichermethode von Django-Modellen

Überschreiben Sie die Speichermethode des Modells, wenn Sie etwas tun möchten, bevor Sie es in die Datenbank einfügen

class Event(models.Model):

    class Meta:
        unique_together = ('name', 'held_date')

    id = models.CharField(primary_key=True, max_length=20)
    name = models.CharField(max_length=8)
    held_date = models.DateField()

    def save(self, **kwargs):
        u"""Erstellen Sie den Wert des Primärschlüssels unmittelbar vor dem Einfügen"""
        self.id = "%s@%s" % (str(self.held_date), self.name)
        super(Event, self).save(**kwargs)

Beim Überschreiben von save () von django wird es möglicherweise von einigen Manager-Methoden aufgerufen oder nicht.

Ruf mich an

Ruf mich nicht an

Es heißt überraschend. Es gibt auch signals.pre_save, aber es ist dasselbe wie dies zu tun, und das Überschreiben von" Speichern "ist expliziter.

Recommended Posts

Überschreiben Sie die Speichermethode von Django-Modellen
Simplex-Methode (Einzelmethode) in Python
Private Methode in Python
Ich habe Bachstelze (1) berührt und die Speichermethode überschrieben.
Muster der Vorlagenmethode in Java
Das Unterdrücken von Methodenüberschreibungen in Python
Sparen Sie Zeit mit SQLAlchemy
Speichern Sie die Binärdatei in Python
Speichern Sie eine bestimmte Variable in tensorflow.session
Implementierte Methode zur Weitergabe von Etiketten in Python
Simulieren Sie die Monte-Carlo-Methode in Python
Hash-Methode (Open-Address-Methode) in Python
Speichern Sie YAML-formatierte Dateien mit PyYAML