Pour répondre littéralement à la question, la create
méthode dans le gestionnaire d'un modèle est un moyen standard de créer de nouveaux objets dans Django. Pour remplacer, faites quelque chose comme
from django.db import models
class MyModelManager(models.Manager):
def create(self, **obj_data):
obj_data['my_field'] = my_computed_value(obj_data['my_other_field'])
return super().create(**obj_data)
class MyModel(models.model):
my_field = models.CharField(max_length=250)
my_other_field = models.CharField(max_length=250)
objects = MyModelManager()
Dans cet exemple, je remplace la méthode de la méthode du gestionnaire create
pour effectuer un traitement supplémentaire avant que l'instance ne soit réellement créée.
REMARQUE: Code comme
my_new_instance = MyModel.objects.create(my_field='my_field value')
exécutera cette create
méthode modifiée , mais un code comme
my_new_unsaved_instance = MyModel(my_field='my_field value')
Ne fera pas.