'signupform' object has no attribute 'email'

Viewed 106

i am trying to send mail using django when a person login but i get error ,'signupform' object has no attribute 'email' and it says error at line 84 which is mentioned in views.py

here is forms.py

signupform(UserCreationForm):
    email=forms.EmailField(max_length=50,help_text='Required',widget=forms.EmailInput(attrs={'placeholder':'email'}))
    password1=forms.CharField(max_length=50,widget=forms.PasswordInput(attrs={'placeholder':'password'}))
    password2=forms.CharField(max_length=50,widget=forms.PasswordInput(attrs={'placeholder':'Re Enter password'}))
    class Meta:
        model=User
        fields=['username','email','password1','password2']
        widgets={
            'username':TextInput(attrs={'placeholder':'username'})
        }

here is views.py

def signupview(request):
   form=signupform()
   if request.method=='POST':
      form=signupform(request.POST)
      if form.is_valid():
        subject='welcome to blog '
        message='its our pleasure to have you '
        send_mail(subject, message, settings.EMAIL_HOST_USER [form.email],fail_silently=False,)                            #line 84 
        form.save()
       
        return redirect('/blogapp/')
   else:
      form=signupform()  
   context={'form':form}
   return render(request,'blogapp/signupform.html',context)
1 Answers

The values of the form can be accessed with the .cleaned_data attributeĀ [Django-doc]:

if form.is_valid():
    form.save()
    subject='welcome to blog'
    message='its our pleasure to have you'
    send_mail(
        subject,
        message,
        settings.EMAIL_HOST_USER,
        [form.cleaned_data['email']],
        fail_silently=False
    )
    return redirect('/blogapp/')
Related