扩展django用户模型时的属性错误?

时间:2017-12-24 14:45:19

标签: python django django-users

我之前做过这件事,并且工作得很好。这是因为我使用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() 。我不明白吗?

1 个答案:

答案 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() 
相关问题