Il primo si sta utilizzando il metodo create
Manager
. È già implementato per te e verrà salvato automaticamente.
Il secondo metodo si sta creando un'istanza di classe Author
quindi si sta chiamando save.
Quindi, in conclusione,
Author.objects.create(name="Joe")
Crea -> save()
l'altro prima linea non creare, e seconda linea salvano.
in alcuni casi, è necessario chiamare il metodo gestore sempre. Ad esempio, è necessario hash la password.
# In here you are saving the un hashed password.
user = User(username="John")
user.password = "112233"
user.save()
# In here you are using the manager method,
# which provide for you hashing before saving the password.
user = User.objects.create_user(username="John", password="112233")
Quindi, in fondo, nei vostri modelli pensateci come setter. Se si desidera modificare i dati sempre durante la creazione, utilizzare i gestori.
possibile duplicato di [Django: Differenza tra save() e create() dal punto di vista della transazione] (http://stackoverflow.com/questions/4206819/django-difference-between-save-and-create-from-transaction -prospettiva) – ozgur