我正在使用Django 2
,并且已经使用django-allauth
插件实现了用户身份验证。
从前端来看,它工作正常,但是用户将由超级用户创建,因此我也需要在管理面板中进行相同的集成。
到目前为止,Django-admin的默认用户模型具有username
和password
字段,但根据django-allauth
,我使用的是唯一的电子邮件,因此我希望用户注册字段。
在管理面板中无法理解如何实现django-allauth
。
编辑2
在管理面板中添加用户页面
如何删除username
字段并添加email
,first_name
,last_name
字段?
答案 0 :(得分:0)
您可以将标准用户创建和更改表单子类化,添加自己的字段和/或验证,然后在自定义用户管理员中使用这些字段。假设您的用户模型称为用户,下面是一个示例(Django 2.1.5,Python 3.6):
from django.contrib.auth.forms import UserCreationForm
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm):
model = User
fields = '__all__'
email = forms.CharField(widget=forms.EmailInput())
class CustomUserAdmin(UserAdmin):
model = User
add_form = CustomUserCreationForm
add_fieldsets = UserAdmin.add_fieldsets + (
(None, {'fields': ('email')}),
)
admin.site.register(User, CustomUserAdmin)
您可以使用UserChangeForm
进行类似的自定义,但是请注意,在管理员中,需要使用以下命令进行覆盖:
form = CustomUserChangeForm
fieldsets = UserAdmin.fieldsets + ((None, {'fields': ()}),
)