Sunday, November 15, 2009

Re: Confirm email by matching on form

I should say that I am using Django 1.1.1, Python 2.5 and sqlite3.
Thanks for your help.

On Nov 15, 9:29 am, Andy <asdjohn...@gmail.com> wrote:
> I have a form with an email field and email confirmation field.  I
> want to check the form input to make sure the two fields match.  So
> far I can get the error message 'Email addresses do not match.' to
> display, but if they do match I am getting an error 'InterfaceError
> at /order/
> Error binding parameter 5 - probably unsupported type'  Here is my
> code:
>
> #models
> from django.db import models
> from django import forms
> from django.forms import ModelForm
>
> class Customer(models.Model):
>         date_stamp = models.DateTimeField(auto_now_add=True)
>         order_number = models.PositiveIntegerField(editable=False)
>         first_name = models.CharField(max_length=30)
>         last_name = models.CharField(max_length=40)
>         email = models.EmailField()
>         email_conf = models.EmailField(verbose_name='Confirm Email')
>         year_built = models.PositiveIntegerField()
>         period = models.PositiveIntegerField(editable=False)
>         direction = models.CharField(max_length=20,
> choices=direction_choices)
>         floor_plan = models.CharField(max_length=2,
> choices=floor_plan_choices)
>
>         def __unicode__(self):
>                 return u'%s %s' % (self.first_name, self.last_name)
>
> class CustomerForm(ModelForm):
>
>         class Meta:
>                 model = Customer
>
>         def clean_year_built(self):
>                 year = self.cleaned_data['year_built']
>                 if year < 1800:
>                         raise forms.ValidationError("Please enter a year between 1800 and
> 2020.")
>                 if year > 2020:
>                         raise forms.ValidationError("Please enter a year between 1800 and
> 2020.")
>                 return year
>
>         def clean_email_conf(self):
>                 cleaned_data = self.cleaned_data
>                 email = cleaned_data.get("email")
>                 email_conf = cleaned_data.get("email_conf")
>                 if email and email_conf:
>                         if email != email_conf:
>                                 raise forms.ValidationError("Email addresses do not match.")
>                 return cleaned_data
> #views
> from django.shortcuts import render_to_response
> from django.http import HttpResponseRedirect
> from newsite.order.models import Customer, CustomerForm
>
> def order(request):
>         if request.method == 'POST':
>                 form = CustomerForm(request.POST)
>                 if form.is_valid():
>                         form.save()
>
>                         return HttpResponseRedirect('/order_complete/')
>         else:
>                 form = CustomerForm()
>
>         return render_to_response('order.html', {'form': form})
>
> def order_complete(request):
>         return render_to_response('order_complete.html')

--

You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate