(我正在使用 allauth 在我的djando应用程序中处理用户身份验证)
出于多种原因,我需要修改用户注册时以及在管理员界面中对其进行修改时用户名的验证方式。
我已经在settings.py
中使用 ACCOUNT_USERNAME_VALIDATORS = []来覆盖allauth用户名验证程序当用户通过注册表单进行注册时,此方法很好用。
问题是,当我尝试在Django管理界面中更改用户信息时,无法保存无法使用内置用户名验证器验证的用户。
error message when trying to update users that contain spaces or special characters
我还尝试过更改 clean_username 功能在适配器中的工作方式。 py ,但仍然无法正常工作。
通过管理界面保存/更新用户时,如何覆盖或更改用户名的验证方式?
这是我的 admin.py
class UserAdmin(BaseUserAdmin):
inlines = [PerfilInline]
list_display = ( 'equipo', 'usuario1', 'usuario2', 'plataforma', 'email', 'comentario', 'ver', 'prekills', 'postkills')
def ver(self, obj):
return obj.perfil.VERIFICACION_2
ver.boolean = True
def equipo(self, obj):
return obj.perfil.equipo
def prekills(self, obj):
return obj.perfil.prekills_1
def postkills(self, obj):
return obj.perfil.postkills_1
def usuario2(self, obj):
return obj.first_name
def usuario1(self, obj):
return obj.username
def plataforma(self, obj):
return obj.last_name
def comentario(self, obj):
return obj.perfil.comentario
#get_author.short_description = 'Author'
#get_author.admin_order_field = 'book__author'
ordering = ('-date_joined', )
list_filter = ('perfil__VERIFICACION_2', 'last_name')
actions = [resetear_torneo, resetear_todo, mail_comienzo_torneo, comenzar_torneo, finalizar_torneo, calcular_puntajes_general, verificar_usuario]
admin.site.unregister(User)
admin.site.register(User, UserAdmin)