簡體   English   中英

Django 如何以模型形式獲取用戶電子郵件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM