I am following this tutorial but facing these problems I can\'t fix:
Please note that set_password() does NOT save the object and since you have called the super first, your object is already saved with raw password.
Just simply use post_save() to save the password.
def post_save(self, obj, created=False):
"""
On creation, replace the raw password with a hashed version.
"""
if created:
obj.set_password(obj.password)
obj.save()