2016-09-17 61 views
3

所以我最近增加了通過OneToOneField鏈接到用戶,像這樣一個可選的用戶配置文件模型:的Django 1.9的錯誤 - 「用戶」對象有沒有屬性「個人資料」

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

這工作正常,我在當前的UserProfile模型中添加了這個字段以將該配置文件鏈接到用戶之前和之後都完好無損。

問題是當我登錄的網站作爲一個有效的用戶上,在形式提交日誌後,來到了一個錯誤:

AttributeError at /login/

'User' object has no attribute 'profile'

我已經通過我的文件搜索任何東西沿「User.profile線'和類似的查詢,但我似乎無法找到任何可以讓我以用戶身份正確登錄的內容。

我不知道還有什麼其他的代碼張貼在這裏,並沒有想垃圾郵件這個問題具有潛在的不必要的代碼,所以告訴我,如果有什麼更具體的(views.py,models.py,forms.py,等等)來解決這類問題,或者如果你知道任何可能的解決方案。

謝謝

回答

6

您沒有設置一個對一個領域的任何related_name屬性,因此反向訪問將被稱爲userprofileprofile

+0

太棒了,可以工作。你知道我會如何用Django建議的'+'來編寫它:https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.ForeignKey。 related_name刪除向後的關係?我試過像related_name ='profile''+'之類的東西,和類似的東西。我對此沒有發現任何內容,而Django文檔示例本身僅使用「+」。 – jayt