It's not redirecting because the following statement never evaluates to True:
if accept is not None and accept.is_active: You are using auth.authenticate (see below) but I don't think that's what you want in this case. auth is the built in django auth system which your code isn't using. accept = auth.authenticate(pin=pin1, serial_no=serial_no1) It looks like you're instead trying to load a Pin object. Try this instead: accept = Pin.objects.get(pin=pin1, serial_no=serial_no1) Now accept is holding the Pin object (assuming it found one) and you can check that object for the property is_active (remember to import Pin). On Wednesday, January 23, 2013 2:19:07 PM UTC-8, Okorie Emmanuel wrote: > > Am trying to build an application that user can login to register using > pin and serial number from a scratch card, a valid pin and serial number > should take a user to the registration page to create an account, here are > codes i have writen > > *view.py* > > def index(request, template_name="index.html"): > errors=[] > if request.method == "POST": > form = PinForm() > if form.is_valid(): > #form.save() > #form.cleaned_data > pin1 = request.POST.get('pin', '') > serial_no1 = request.POST.get('serial_no', '') > accept = auth.authenticate(pin=pin1, serial_no=serial_no1) > if accept is not None and accept.is_active: > # Correct password, and the user is marked "active" > auth.login(request, accept) > # Redirect to a success page. > return HttpResponseRedirect('/acceptance/') > > > else: > form = PinForm() > #accept = authenticate(pin != pin, serial_no !=serial_no, is_valid > = False ) > #errors.append('This card Does Not Exist') > # form = PinForm() > return render_to_response(template_name, locals(),context_instance = > RequestContext(request)) > > > def acceptance(request, template_name = "acceptance.html"): > return render_to_response(template_name, locals(),context_instance = > RequestContext(request)) > > *form.py* > > from django import forms > from you.models import Pin > > class PinForm(forms.ModelForm): > class Meta: > model = Pin > exclude = ('is_active',) > > *urls.py* > * > * > from django.conf.urls.defaults import * > > > urlpatterns = patterns('you.views', > (r'^$','index', {'template_name': 'index.html'}, 'home_page'), > #(r'^acceptance/$',{'template_name': 'acceptance.html'}, > 'acceptance'), > (r'^acceptance/$', 'acceptance', {'template_name': > 'acceptance.html'}, 'acceptance'), > > and > > *models.py* > * > * > *from django.db import models* > *from django.forms import ModelForm* > * > * > *class Pin(models.Model):* > * pin = models.CharField(max_length=12)* > * serial_no = models.CharField(max_length=12)* > * is_active = models.BooleanField(default=True)* > * * > * class Meta:* > * db_table = 'db_Pin'* > * ordering = ['pin']* > * def __unicode__(self):* > * return self.pin* > > > In the model i have actually stored the pin and serial no, but each time i > entered a valid pin and serial number it does not redirect to the next page > which for now > is the acceptance page, this i intend to change to the registration page. > pls what have i not done right, pls help me fix this. thanks > -- You received this message because you are subscribed to the Google Groups "Django users" group. To view this discussion on the web visit https://groups.google.com/d/msg/django-users/-/ezPwgSE36P4J. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.