Ich versuche zu akzeptieren, dass Leerzeichen in das Feld Benutzername des voreingestellten Benutzers django.contrib.auth.models akzeptiert werden, andere Leute haben direkt oder ähnliche Fragen vorher gefragt: Here, Here und Here. Ich habe versucht, diese Vorschläge umzusetzen, aber ich kann kein gutes Beispiel dafür finden, wie ich das umsetzen kann.Wie kann ich Leerzeichen in einem Django-Benutzernamen Regex zulassen?
Von was ich verstehe, muss ich die Regex im Feld Validator Benutzername ändern, um dies zu tun, kann ich die UserCreationForm von contrib.auth.forms überschreiben, um ein anderes Feld für den Benutzernamen zu implementieren und meine eigene Validierung. (wie in this Antwort vorgeschlagen).
Wie konkret mache ich das?
als Referenz, ist dies zur Zeit, was ich als Anmeldeformular bin mit:
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
Welche Version von Django liegst du? – Jonathan
Meine Version von Django ist 1.10.1 –