我想使用Django 1.5中的新功能來使用電子郵件地址作爲用戶名。用戶名仍然需要在自定義用戶模型
一切工作正常,使用該條形碼的管理界面更新的用戶,我不得不亂動,使密碼不會出現原料(並使用密碼更改表單等): -
class PlayerChangeForm(UserChangeForm):
class Meta(UserChangeForm.Meta):
model = Player
class PlayerCreationForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = Player
class PlayerAdmin(auth.admin.UserAdmin):
form = PlayerChangeForm
add_form = PlayerCreationForm
ordering = ['first_name', 'last_name']
list_display = ('primkey', 'email', 'mobile')
list_editable = ('email', 'mobile')
list_filter =()
fieldsets = ((None, {'fields': ('username', 'first_name', 'last_name', 'email', 'password', 'mobile')}),
('Permissions', {'fields': ('is_active', 'is_admin')}),
('Important dates', {'fields': ('last_login',)}),
)
add_fieldsets = ((None, {
'classes': ('wide',),
'fields': ('username', 'first_name', 'last_name', 'email', 'password1', 'password2')}
),
)
filter_horizontal =()
def primkey(self, obj):
return ("%s" % (obj.get_full_name()))
primkey.short_description = 'Player'
這使得管理頁面看起來很好,但是當我真的嘗試和更新播放器時,它告訴我在表單上有一個錯誤,但並不表示位置。
經過一番混亂之後,事實證明,它希望設置用戶名字段(如果我將其添加到管理員表單中,它表示該字段是必需的),但肯定情況並非如此,因爲我是否已將我的USERNAME_FIELD設置爲「電子郵件」?
如果我將該字段設置爲某些內容,則可以保存對其他字段所做的任何更改,但不會將我的更新保存到用戶名字段。但是,真的,我不想設置用戶名 - 我使用電子郵件作爲用戶名。
關於這個的任何想法還是這是在Django中的錯誤?