Per rispondere letteralmente alla domanda, il create
metodo nel gestore di un modello è un modo standard per creare nuovi oggetti in Django. Per ignorare, fai qualcosa di simile
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()
In questo esempio, sovrascrivo il metodo di Manager create
per eseguire un'elaborazione aggiuntiva prima che l'istanza venga effettivamente creata.
NOTA: codice simile
my_new_instance = MyModel.objects.create(my_field='my_field value')
eseguirà questo create
metodo modificato , ma un codice simile
my_new_unsaved_instance = MyModel(my_field='my_field value')
non lo farò.