我創建了更新配置文件頁面。所以這些字段是:電子郵件,名字,姓氏。Django,更新配置文件,排除當前用戶電子郵件
在驗證中,我試圖排除記錄的用戶的電子郵件地址,並且我正在過濾其他用戶的電子郵件地址。我想如果你看到代碼,你會明白我在說什麼。
我在這裏讀了幾個問題,但找不到東西。一些用戶有同樣的問題。
所以用下面的代碼,我得到的問題是: 類型對象'用戶'沒有屬性'電子郵件'。
我嘗試了很多方法來獲取當前用戶的電子郵件地址(在我保存表單之前),但什麼也沒有。
forms.py
class UpdateProfile(forms.ModelForm):
email = forms.EmailField(required=True)
first_name = forms.CharField(required=False)
last_name = forms.CharField(required=False)
class Meta:
model = User
fields = ('email', 'first_name', 'last_name')
def clean_email(self):
email = self.cleaned_data.get('email')
current_user_email = User.email
if User.objects.filter(email__iexact=email).exclude(email__iexact=current_user_email).count() > 0:
raise forms.ValidationError('This email address is already in use.'
'Please supply a different email address.')
return email
def save(self, commit=True):
user = super(UpdateProfile, self).save(commit=False)
if commit:
user.save()
return user
你使用的是django contrib用戶模型嗎?另外,哪一行會引發錯誤? – karthikr
是的,我正在使用django用戶模型。問題是獲取當前登錄的用戶電子郵件地址。所以這是這一行:'current_user_email = User.email'。 – manosim