Как использовать методы проверки имени пользователя django-allauth в форме обновления пользователя
Я использую систему django-allauth для регистрации пользователей и их входа в систему. Мое приложение должно позволять пользователям изменять свои имена при необходимости.
Если я использую пользовательское представление или форму для изменения имени пользователя, то никакой проверки allauth не происходит (потому что представления и формы по умолчанию не срабатывают). Таким образом, пользователи могут легко установить любое имя пользователя, какое захотят, игнорируя все ограничения, указанные в настройках (например, "сохранять регистр" или "ограничение минимальной длины").
Есть ли способ использовать встроенные в allauth валидации по умолчанию вне форм регистрации/логина?
Сейчас мне приходится вручную создавать пользовательскую форму и использовать ее методы очистки для валидации, что кажется повторяющимся и чреватым ошибками:
def clean_username(self):
username = self.cleaned_data.get('username')
if username:
username = username.lower()
if len(username) < settings.ACCOUNT_USERNAME_MIN_LENGTH:
raise ValidationError(_("Error text"))
if username in settings.ACCOUNT_USERNAME_BLACKLIST:
raise ValidationError(_("Error text"))
# I need something that works like the code below and validates a username
from allauth.account.adapter import DefaultAccountAdapter
DefaultAccountAdapter.clean_username(username)
return username