【问题标题】:Django 1.9 error - 'User' object has no attribute 'profile'Django 1.9 错误 - “用户”对象没有属性“配置文件”
【发布时间】:2017-01-25 17:41:38
【问题描述】:

所以我最近添加了一个可选的用户配置文件模型,它通过 OneToOneField 链接到用户,如下所示:

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

这很好用,我当前的 UserProfile 模型在我添加此字段以将配置文件链接到用户之前和之后都完好无损。

当我以有效用户身份登录网站时出现问题,提交登录表单后出现错误:

/login/处的AttributeError

“用户”对象没有属性“配置文件”

我已经在我的文件中搜索了与“User.profile”类似的任何内容以及类似的查询,但是我似乎找不到任何可以让我以用户身份正确登录的内容。

我不确定要在此处发布哪些其他代码,并且不想使用可能不必要的代码向这个问题发送垃圾邮件,因此请告诉我是否有更具体的代码(views.py、models.py、forms.py 等) 这将是解决此类问题所需要的,或者如果您知道任何可能的解决方案。

谢谢

【问题讨论】:

    标签: python django django-models django-views


    【解决方案1】:

    您尚未在该一对一字段上设置任何 related_name 属性,因此反向访问器将被称为 userprofile 而不是 profile

    【讨论】:

    • 太棒了,这行得通。你知道我会如何用 Django 在这里建议的“+”来写:docs.djangoproject.com/en/1.10/ref/models/fields/… 以删除向后关系吗?我已经尝试过相关名称='profile''+'之类的东西,以及类似的东西。我对此一无所知,Django 文档示例仅单独使用“+”。
    【解决方案2】:

    确保您的应用位于 settins.py INSTALLED_APPS

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 2016-05-19
      • 2018-06-14
      • 2017-01-22
      • 2014-06-03
      • 2018-02-02
      相关资源
      最近更新 更多