私はDjangoプロジェクトに取り組んでいます。ここでユーザーは自分のユーザー名と名字を1つのフォームで変更できます。 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は 'if User.objects.filter(username = username).count()'を実行することもできます。 – wonderwhy