The first one you are using the Manager
method create
. It already implemented for you and it will save automatically.
The second method you are creating an instance of class Author
then you are calling save.
So in conclusion,
Author.objects.create(name="Joe")
create --> save()
the other one first line do create, and second line do save.
in some cases, you will need to call the manager method always. For example, you need to hash the 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")
So basically, in your models think about it as setters. If you want to modify the data always while creation then use managers.