我試圖允許空格被接受到默認django.contrib.auth.models用戶的用戶名字段中,其他人在直接或類似問題之前提出了以下要求:Here,Here和Here。我試圖實現這些建議,但我似乎無法找到一個很好的例子來說明如何使這個工作。如何在Django用戶名正則表達式中允許空格?
根據我的理解,我需要更改用戶名字段驗證程序中的正則表達式,爲此,我可以重寫來自contrib.auth.forms的UserCreationForm以實現用戶名的不同字段並提供自己的驗證。 (如this答案中的建議)。
我該怎麼做?
以供參考,這是目前我在用作爲註冊表單:
class SignUpForm(forms.ModelForm):
"""
This form class is for creating a player
"""
username = forms.CharField(label='Gamertag', max_length=16, widget=forms.TextInput(attrs={'placeholder': 'Gamertag', 'class': 'form-input'}))
email = forms.EmailField(label='email', widget=forms.TextInput(attrs={'placeholder': 'Email', 'class': 'form-input', 'type':'email'}))
password = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Password', 'class': 'form-input'}))
class Meta:
model = User
fields = ['username',
'email',
'password']
widgets = {
'password': forms.PasswordInput(),
}
def clean_email(self):
email = self.cleaned_data.get('email')
username = self.cleaned_data.get('username')
if email and User.objects.filter(email=email).exclude(username=username).count():
raise forms.ValidationError(u'A user with that email already exists.')
return email
你正在運行哪個版本的Django? – Jonathan
我的Django版本是1.10.1 –