2014-05-19 92 views
0

在我的應用程序自定義Django的用戶,我有一個模型:通過繼承AbstractUser

from django.contrib.auth.models import AbstractUser 

class User(AbstractUser): 
    avatar = models.ImageField(upload_to='avatars') 

在settings.py我這樣做:

AUTH_USER_MODEL = 'forum.User' 

進行同步,遷移,並創建一個超級用戶後,我仍然無法登錄。無法理解,如果我錯過了設置或其他任何地方的東西? Django的文檔說這應該足夠了。

AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend') 

默認情況下。

+0

超級用戶是否在數據庫中存在嗎?你如何創建它? – zymud

+0

是的。我通過manage.py命令「createsuperuser」創建它。 – Nervosa

回答

0

這是一個複數設置/警告標誌正在我的大腦中到處檢查是否可迭代。

https://docs.djangoproject.com/en/dev/ref/settings/#authentication-backends

AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',) 
#                 ^add this 
+0

嘗試進行身份驗證時仍然出現錯誤,但我執行了syncdb,遷移並重新創建了超級用戶。 – Nervosa

+0

我發現我的所有密碼都被認爲是不可用的,因爲每一個密碼的散列都是從'!'的UNUSABLE_PASSWORD_PREFIX開始的。這是否意味着無論如何,我需要爲用戶創建創建自定義後端? – Nervosa

+0

據我現在可以看到,現在存儲在表MADE BY SOUTH中的密碼是無效的,不像存儲在表MADE BY SYNCDB中的密碼。 – Nervosa