2014-02-10 82 views
0

我想繼承AbstractUSer我models.py的樣子:Django的AbstractUser不能正常工作

通過聲明電子郵件作爲獨特的領域和用戶名作爲必填字段
class MyUser(AbstractUser):   
    created = models.DateTimeField(auto_now_add=True) 

    USERNAME_FIELD = 'email' 
    REQUIRED_FIELDS = ['username',] 

MyUser._meta.get_field_by_name('email')[0]._unique=True 

現在正在順利,也創造了我的超級用戶被正確地認證,但我在創建任何其他用戶,就好像我是通過我的管理頁面創建的任何用戶有一個問題,它不是authenticated.It總是返回

我的admin.py:

from django.contrib import admin 
from credilet.models import * 

admin.site.register(MyUser) 

什麼,我的想法是,create_user沒有被正確地叫,好像我在管理頁面看到密碼進行散列處理,這樣意味着create_user不會被調用properly.Somebody還是請您幫忙,甚至如果你有abstractuser一個適當的文件

不abstractbaseuser

因此請參考對我的解決方案秒。

感謝

回答

0

如果你想改變,你必須使用AbstractBaseUser, look at this full example認證系統。

AbstractUser是確定Extend Django’s default User

+0

我只是想利用電子郵件作爲我的用戶名,但通過抽象基用戶擴展它,我必須去通過所有的後端系統,我的意思是我必須確定我的自定義create_user和create_superuser和所有的東西,並阻止我用摘要用戶,這樣是沒有辦法,我可以用抽象的用戶,只是定義我的事情就同Django的用戶對象的用戶名和其餘的任何可能性 – saurabh