В настоящее время в django.contrib.auth может быть два пользователя с именем пользователя «john» и «John». Как я могу предотвратить это.
Самый простой подход — добавить чистый метод в contib.auth.models и преобразовать его в нижний регистр перед сохранением, но я не хочу редактировать пакет contrib.auth.
Спасибо.
Решение проблемы
Послушайте pre_save
модель Users
, а затем проверьте там. Наименее навязчивый и наиболее портативный способ.
Вот пример того, как это будет выглядеть (адаптировано из примера профиля пользователя):
def username_check(sender, instance, **kwargs):
if User.objects.filter(username=instance.username.lower()).count():
raise ValidationError('Duplicate username')
pre_save.connect(username_check, sender=User)
Комментариев нет:
Отправить комментарий