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.
create
get_or_create
update_or_create
bulk_create
This does *not* call save() on each of the instances
C'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