禁用用户名中的用户姓氏

时间:2009-09-06 19:18:13

标签: django string username

使用Django框架,我构建了一个基于用户的Web应用程序。一段时间后,我的客户端要求应用程序禁止创建包含用户姓氏的用户名。

我有两个问题:

  1. 是否可以可靠地执行此操作,始终捕获某人尝试注册包含其姓氏的用户名,该用户名也作为注册字段出现? (我的理解和经验是,用户可以轻易地颠覆这一点,并且仍然通过添加特殊字符或整数使用户名看起来像他们的姓氏。)

  2. 最好的方法是什么?

3 个答案:

答案 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)

您可以让您的应用自动生成用户名吗?或者使用电子邮件作为用户名?