2013-06-23 155 views
0

我有一个表单,允许用户使用UserModel注册我的应用程序。我试图只允许用户名中的字母,数字,下划线或连字符。我一直在尝试使用validate_slug¶,但我不明白如何使用它可能会验证提交的输入是否只有字母,数字,下划线或连字符,否则会引发错误。只允许字母,数字,下划线或连字符django

有人可以帮我

class UserRegistration(forms.Form): 
    username = forms.CharField() 
    email = forms.EmailField() 
    password = forms.CharField(
     widget=forms.PasswordInput(render_value=False)) 


     def clean_username(self): 
      username = self.cleaned_data['username'] 

       if "@" in username: 
        raise forms.ValidationError("Sorry , you cannot use the symbol @") 
       return username 

回答

2

您可以使用和,而不是验证每一个方法可行的正则表达式匹配,只有验证对允许的字符:

import re 
if not re.match(r'^[A-Za-z0-9_-]+$', username): 
    raise forms.ValidationError("Sorry , you can only have alphanumeric, _ or - in username") 
相关问题