我通过继承创建了一个自定义用户模型django.contrib.auth.models.User
,并将其添加到我的管理员中。MyUser
当我从管理员创建实例时,我有两个(相关)问题:
1-在管理员中,普通密码(未加密)显示在password
字段中
2-当我尝试使用实例登录我的管理员时MyUser
,我得到
Unknown password hashing algorithm '<mypassword>'. Did you specify it in the PASSWORD_HASHERS setting
这是一个错误吗?我该如何解决?(我正在使用 Django 1.4.2)
模型.py
from django.contrib.auth.models import User
class MyUser(User):
number = models.IntegerField()
管理员.py
class MyUserAdmin(admin.ModelAdmin):
pass
admin.site.register(MyUser, MyUserAdmin)
编辑
使用以下密码设置正确,但是当我想MyUser
从管理员修改某些实例时,密码被清除,我必须再次设置它:
class MyUserAdminForm(forms.ModelForm):
class Meta:
model = MyUser
def __init__(self, *args, **kwargs):
super(MyUserAdminForm, self).__init__(*args, **kwargs)
self.fields['password'].widget = forms.PasswordInput()
def save(self, commit=True):
user = super(MyUserAdminForm, self).save(commit=False)
user.set_password(self.cleaned_data["password"])
if commit:
user.save()
return user
class MyUserAdmin(admin.ModelAdmin):
form = MyUserAdminForm
admin.site.register(MyUser, MyUserAdmin)