目前,在 django.contrib.auth 中,可以有两个用户名为“john”和“John”的用户。我怎样才能防止这种情况发生。
最直接的方法是在 contrib.auth.models 中添加一个干净的方法,并在保存之前将其转换为小写,但我不想编辑 contrib.auth 包。
Thanks.
收听pre_save https://docs.djangoproject.com/en/dev/ref/signals/#django.db.models.signals.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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)