gpt4 book ai didi

python - 扩展 django 用户模型时出现属性错误?

转载 作者:太空宇宙 更新时间:2023-11-03 14:20:48 24 4
gpt4 key购买 nike

我之前已经这样做过并且工作正常。这是因为我使用的是 django2.0 吗?

模型.py

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()

我收到错误AttributeError:“User”对象没有属性“profile”。我不明白?

最佳答案

要通过 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()

关于python - 扩展 django 用户模型时出现属性错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47961542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com