Django 1.9错误 - 'User'对象没有属性'profile'。

8

最近我添加了一个可选的用户资料模型,通过OneToOneField与用户关联如下:

class UserProfile(models.Model): # Creating class
    user = models.OneToOneField(User, on_delete=models.CASCADE)

这个问题出现在我以已登录的用户身份访问网站后,在提交登录表单后遇到错误:

AttributeError at /login/

'User' 对象没有 'profile' 属性

在将该字段添加到链接配置文件和用户之前,我的当前 UserProfile 模型是完好无损的。

我已经搜索了我的文件,寻找任何与 'User.profile' 相关的内容以及类似的查询,但是我无法找到任何可以让我正确以用户身份登录的内容。

我不确定是否需要发布其他代码(例如 views.py、models.py、forms.py 等),也不想在这个问题中发布可能不必要的代码,因此请告诉我是否需要发布更具体的内容来解决这个问题,或者您是否知道任何可能的解决方案。

谢谢。

2个回答

14

你没有在那个一对一字段上设置任何related_name属性,因此反向访问器将被称为userprofile而不是profile


太棒了,它有效了。您知道我如何使用在Django这里建议的“+”符号编写代码:https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.ForeignKey.related_name以删除反向关系吗? 我已经尝试了related_name ='profile''+'之类的东西。 我在SO上找不到有关此的任何信息,并且Django文档示例仅使用单个“+”。 - jayt

0

确保你的应用程序在settings.py文件中的INSTALLED_APPS列表中


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接