2010-05-22 144 views
1

我試圖擴展用戶模型,以便我可以添加自己的自定義字段,但我不斷收到錯誤提示:擴展與自定義字段的用戶模型在Django

「NoneType」對象沒有屬性'_default_manager'

每當我試圖用

user.get_profile()

將值添加到自定義字段,即每當我使用它,像這樣:

用戶= User.objects.create_user(用戶名,電子郵件,密碼)

user.first_name = FNAME

user.last_name = L-NAME

user.save()

UINFO = user.get_profile()

uinfo.timezone = 「亞洲/浦那」

uinfo.save()

我已經按照在 Extending the User model with custom fields in Django沒有運氣給出的步驟。

回答

2

首先:你絕對確保你把正確的價值AUTH_PROFILE_MODULE在你的settings.py文件?因爲如果該用戶沒有UserProfile,異常應該看起來不同。 (DoesNotExist)

反正:有當時沒有用戶配置對象,因爲它不是自動生成。所以get_profile()在你的情況下引發一個異常。

要麼做到這一點:

if not UserProfile.objects.filter(user=user): 
    p = UserProfile(user=user) 
    p.save() 
uinfo = user.get_profile() 
... 

或作爲(鬆散地)在http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users

描述創建一個信號