Не удается изменить способ проверки имени пользователя при сохранении пользователя в интерфейсе администратора Django - PullRequest
0 голосов
/ 10 октября 2018

(я использую 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)
...