我正在開發一個Django項目,用戶可以在其中以一種形式更改他們的用戶名以及他們的名和姓。在forms.py中,我試圖找出用戶是否存在。如果是這樣,它應該顯示一個錯誤。問題是,如果用戶想要改變他的名字和姓氏並在輸入中留下他的用戶名,則會引發驗證錯誤。顯然,該用戶名已經存在。有沒有辦法檢查它是否等於當前登錄用戶的用戶名並避免顯示錯誤?檢查用戶名是否存在於Django中
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)
謝謝。
謝謝你,這正是我一直在尋找的。 – lukas
Heyyy @lukas也可以做'如果User.objects.filter(username = username).count()' – wonderwhy