2013-06-23 149 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") 
相關問題