使用Django框架,我构建了一个基于用户的Web应用程序。一段时间后,我的客户端要求应用程序禁止创建包含用户姓氏的用户名。
我有两个问题:
是否可以可靠地执行此操作,始终捕获某人尝试注册包含其姓氏的用户名,该用户名也作为注册字段出现? (我的理解和经验是,用户可以轻易地颠覆这一点,并且仍然通过添加特殊字符或整数使用户名看起来像他们的姓氏。)
最好的方法是什么?
答案 0 :(得分:4)
尝试创建custom validation rule。该函数(可能是django.forms.Field
的子类的成员方法)可能如下所示:
def validate(self, value):
if len(re.findall(self.lastname,value)) > 0:
raise forms.ValidationError('Your username may not contain your last name.')
return value
答案 1 :(得分:0)
我认为你不能先知道他们的姓氏。例如,如果我可以使用我的用户名:
joevasquez OR jvasquez OR vasquezj OR vasquez...
关于什么构成某人的姓氏,没有规则。如果有人的姓是乔怎么办?这不像过滤脏话。
此请求背后的原因是什么?如果是隐私,您可以通知用户,但我认为您不能阻止人们使用他们的姓氏。
答案 2 :(得分:0)
您可以让您的应用自动生成用户名吗?或者使用电子邮件作为用户名?