Я следую учебному пособию в Django, и у меня есть некоторые проблемы с пониманием кода ниже:
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
# why do we need to save instance? 'Profile.objects.create' already created and save that for us
@receiver(post_save, sender=User)
def save_profile(sender, instance, **kwargs):
instance.profile.save()
Это означает, что если пользователь создает учетную запись или регистрируется на сайте, используя сигналы, будет создан профильавтоматически связывается с этим пользователем.
Вопрос в том, зачем нам сохранять экземпляр профиля, потому что Profile.objects.create(user=instance)
уже создал и сохранил этот экземпляр одновременно.
Даже если я опущу второй блок вышеприведенного кода, он все равно будет работать нормально:
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
Чего мне здесь не хватает, или я не понимаю, или мы этого не понимаем?нужен второй блок?Пожалуйста, помогите мне понять это и заранее спасибо.