我之前做过这件事,并且工作得很好。这是因为我使用accountLiteList
?
models.py
django2.0
我收到错误class Profile(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
....
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
。我不明白吗?
答案 0 :(得分:1)
要访问ForeignKey
个人资料相关的所有相反信息,您需要使用profile_set
。如果您需要获取并保存第一个相关对象,请尝试以下方法:
def save_user_profile(sender, instance, **kwargs):
instance.profile_set.first().save()
但在这种情况下,我相信您最好使用OneToOneField
:
user = models.OneToOneField(User, on_delete=models.CASCADE)
允许只创建一个相关的配置文件,并允许使用以下语法:
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()