I got it working Vijay! Thank you so much for your help, and have a great 
Christmas!!


On Thursday, December 22, 2016 at 9:55:05 PM UTC-5, Vijay Khemlani wrote:
>
> if the form is not valid then form.errors should contain human-readable 
> errors for each field, including the one you validate yourself (the string 
> inside the raise ValidationError call), you can return that.
>
> On Thu, Dec 22, 2016 at 11:49 PM, Chris Kavanagh <[email protected] 
> <javascript:>> wrote:
>
>> Yeah, I was wrong Vijay. For some odd reason I thought the 
>> ValidationError would catch it BEFORE submitted. . .
>>
>> I re-read the docs and saw I was wrong. .
>>
>> In other words, I I try to submit the form with the input field empty, I 
>> get a small pop up error saying "Please Enter An Email".
>>
>> Or, if I use an invalid email format, I get the same popup error saying 
>> "Please Enter An Email Address."
>>
>> Is there a way to do this with this (with django)?
>>
>> On Thursday, December 22, 2016 at 9:30:22 PM UTC-5, Vijay Khemlani wrote:
>>>
>>> I'm not following
>>>
>>> If you submit the form with incorrect information (non unique email) 
>>> then your view does not return anything because form.is_valid() returns 
>>> False
>>>
>>> Validation errors don't prevent the form from being submitted, they 
>>> prevent the form from validation (making form.is_valid() return False and 
>>> adding values to form.errors)
>>>
>>> On Thu, Dec 22, 2016 at 5:14 PM, Chris Kavanagh <[email protected]> 
>>> wrote:
>>>
>>>> I have a model form called *"ContactForm" *that has an email field. I 
>>>> created a custom* forms.ValidationError* in *"clean_email"* method
>>>>
>>>>  which checks to see if the email is already in the database , however 
>>>> it's never raised on submit.
>>>>
>>>>
>>>>  When submit is called, the view runs and I get the error *"The view 
>>>> customer.views.send_email didn't return an HttpResponse object.*
>>>>
>>>> * It returned None instead"*, because it's not being passed an actual 
>>>> email. . 
>>>>
>>>> I don't understand why the *forms.ValidationError* isn't stopping it 
>>>> from being submitted? The query in the *"clean_email"* works fine, so 
>>>> that's not the problem.
>>>>
>>>> I've used this same code before with no problems. I'm sure it's 
>>>> something easy I'm forgetting or missing, but any help is GREATLY 
>>>> appreciated. .
>>>>
>>>> Note: I am using django crispy forms
>>>>
>>>>
>>>> *#Model:*
>>>> class Customer(models.Model):
>>>>     email = models.EmailField(max_length=70,blank=False)
>>>>     created = models.DateTimeField(auto_now_add=True)
>>>>
>>>>     class Meta:
>>>>     ordering = ('email',)
>>>>
>>>> def __unicode__(self):
>>>> return self.email
>>>>
>>>>
>>>>
>>>>
>>>> *#Form:*
>>>> class ContactForm(forms.ModelForm):
>>>>
>>>> class Meta:
>>>> model = Customer
>>>> fields = ['email']
>>>>
>>>> def clean_email(self):
>>>> email = self.cleaned_data['email']
>>>> cust_email = Customer.objects.filter(email=email).count()
>>>> if cust_email:
>>>> raise forms.ValidationError('This email is already in use.')
>>>> return email
>>>>
>>>>
>>>>
>>>>
>>>> *#View:*
>>>> def send_email(request):
>>>>     if request.method == 'POST':
>>>>         form = ContactForm(request.POST)
>>>>         if form.is_valid():
>>>>             cd = form.cleaned_data
>>>>             email = cd['email']
>>>>             new_email = form.save(commit=True)
>>>>             to_email = form.cleaned_data['email']   # cd['email']
>>>>             subject = 'Newsletter'
>>>>             from_email = settings.EMAIL_HOST_USER
>>>>             message = 'You Are Now Signed Up For BenGui Newsletter!'
>>>>             #send_mail(subject, message, from_email, [to_email,], 
>>>> fail_silently=False)
>>>>             return redirect('home')
>>>>     else:
>>>>         return render(request, 'home.html', context)
>>>>
>>>>
>>>>
>>>> *#customer.urls:*
>>>>
>>>> urlpatterns = [    
>>>>     url(r'^send-email/$', views.send_email, name='send_email'),
>>>>     ]
>>>>
>>>>
>>>> #Template:
>>>>
>>>> <form action="{% url 'customer:send_email' %}" method="post">
>>>>                     {% csrf_token %}
>>>>                     {{ form|crispy }}
>>>>                 <input class='btn btn-success btn-lg btn-block' 
>>>> type='submit' value='Submit'></input>
>>>>             </form>
>>>>
>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Django users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at https://groups.google.com/group/django-users.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/django-users/8ff5313f-3783-4897-afa7-5edd4fe1b436%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/django-users/8ff5313f-3783-4897-afa7-5edd4fe1b436%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/django-users.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/django-users/39ec5818-92b6-4b2c-ad9a-58e09acd5427%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/django-users/39ec5818-92b6-4b2c-ad9a-58e09acd5427%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/864a5bc9-5681-4c8a-9f3b-d61955cc1983%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to