Ich arbeite an einem Django-Projekt, bei dem Benutzer ihre Benutzernamen zusammen mit ihrem Vor- und Nachnamen in einem Formular ändern können. In forms.py versuche ich herauszufinden, ob der Benutzer existiert. Wenn ja, sollte ein Fehler angezeigt werden. Das Problem besteht darin, dass wenn ein Benutzer seinen Vor- und Nachnamen ändern möchte und seinen Benutzernamen in der Eingabe belässt, ein Validierungsfehler auftritt. Offensichtlich existiert dieser Benutzername bereits. Gibt es eine Möglichkeit, zu überprüfen, ob es dem Benutzernamen des aktuell angemeldeten Benutzers entspricht, und den Fehler nicht anzuzeigen?Überprüfen, ob der Benutzername in Django existiert
class ChangeNameForm(forms.ModelForm):
username = forms.CharField(max_length=30)
first_name = forms.CharField(max_length=255)
last_name = forms.CharField(max_length=255)
def clean_username(self):
username = self.cleaned_data['username']
try:
user = User.objects.get(username=username)
except user.DoesNotExist:
return username
raise forms.ValidationError(u'Username "%s" is already in use.' % username)
Vielen Dank.
Danke Mann, das ist genau das, was ich gesucht habe. – lukas
Heyyy @lukas kann auch 'if User.objects.filter (username = username) .count()' – wonderwhy