[英]Django How to get user email in model form
所以我在 Django 中有配置文件更新表單,我從ModelForm
繼承它。 但我無法通過self.request.user.email
獲取用戶電子郵件。
class UserUpdateForm(forms.ModelForm):
#Profile email
email=forms.EmailField()
username=forms.CharField(required=True,validators=[username_check,])
class Meta:
model =User
fields =['username','email']
def clean_email(self):
form_useremail=self.cleaned_data.get("email").lower()
if form_useremail!=self.request.user.email and User.objects.filter(username=form_username).exists():
raise forms.ValidationError("Email already in use")
else:
return form_useremail
我收到此錯誤:
'UserUpdateForm' object has no attribute 'request'
您可以從self.instance.email訪問用戶的電子郵件
試試看,例如:
def clean_email(self):
email = self.cleaned_data['email']
user_email = self.instance.email
if User.objects.filter(email = email).exists() and user_email.lower() != email.lower():
raise forms.ValidationError('Email already in use')
return email
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.