Remplacez la méthode de sauvegarde du modèle si vous voulez que quelque chose soit fait juste avant de l'insérer dans la base de données
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"""Créez la valeur de la clé primaire juste avant l'insertion"""
        self.id = "%s@%s" % (str(self.held_date), self.name)
        super(Event, self).save(**kwargs)
Lors de l'écrasement de save () de django, certaines méthodes de gestion peuvent l'appeler ou non.
createget_or_createupdate_or_createbulk_create
This does *not* call save() on each of the instancesC'est étonnamment appelé.
Il y a aussi signaux.pre_save, mais c'est la même chose que de le faire, et l'écrasement de save est plus explicite.
Recommended Posts