使用Django验证用户名验证

时间:2012-02-07 22:49:40

标签: django authentication

我目前正在构建一个django应用程序。我有一个表单,用户输入他/她的数据进行注册。我使用User表(django.contrib.auth.models),我还有一个UserProfile表,我存储了其他信息。我的问题是如何验证(没有特殊字符,没有空格等)我发送到的用户名:

new_user = User.objects.create_user( username, email, password)

我正在使用UserProfile模型中的表单。我尝试用以下方式验证我的表单: form.is_valid():

但是,由于“用户”字段是外键,它将转换为多选字段,因此除非用户已存在于“用户”表中,否则它不会进行验证。

那么我怎样才能在调用

之前验证用户名
User.objects.create_user( username, email, password)

根据我的经验,create_user允许任何用户名。

感谢任何帮助。

1 个答案:

答案 0 :(得分:4)

只需在表单中添加一个方法:

def clean_username(self):
    username = self.cleaned_data.get('username')
    # do whatever checks you want and raise `ValidationError` if there's an issue
    return username