(я использую allauth для обработки аутентификации пользователей в моем приложении djando)
По нескольким причинам мне нужно изменить способ проверки имени пользователя, когда пользователи регистрируются и когда они изменяются винтерфейс администратора.
Мне удалось переопределить средство проверки имени пользователя allauth с помощью ACCOUNT_USERNAME_VALIDATORS = [] в файле settings.py
Это прекрасно работает, когда пользователи регистрируются через форму регистрации.
Проблема в том, что когда я пытаюсь изменить информацию о пользователе в интерфейсе администратора Django, я не могу сохранить пользователей, которые не могут быть проверены с помощью встроенных валидаторов имени пользователя.
сообщение об ошибке при попыткечтобы обновить пользователей, которые содержат пробелы или специальные символы
Я также пытался изменить работу функции 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)