I have a view function I am using for logging in people. When I am
deploying it to Apache/Mod_python, I am unable to login, but If I am
running it on the development server, I am able to login. Any
pointers?

(I am not using the builtin login, as I want to use newforms.)
The view function is,
def login(request, template_name='registration/login.html',
redirect_field_name=REDIRECT_FIELD_NAME):
    """Displays the login form and handles the login action."""
    redirect_to = request.REQUEST.get(redirect_field_name, '')
    if Site._meta.installed:
        current_site = Site.objects.get_current()
    else:
        current_site = RequestSite(request)
    if request.method == 'POST':
       login_form = forms.AuthenticationForm(request.POST)
       login_form.set_request(request)
       if login_form.is_valid():
            # Light security check -- make sure redirect_to isn't
garbage.
            if not redirect_to or '//' in redirect_to or ' ' in
redirect_to:
                from django.conf import settings
                redirect_to = settings.LOGIN_REDIRECT_URL
            from django.contrib.auth import login
            user = login_form.user
            login(request, user)
            request.session.delete_test_cookie()
            return HttpResponseRedirect(redirect_to)
    elif request.method == 'GET':
        login_form = forms.AuthenticationForm()
    request.session.set_test_cookie()
    return render_to_response(template_name, {
        'form': login_form,
        redirect_field_name: redirect_to,
        'site_name': current_site.name,
    }, context_instance=RequestContext(request))

The AuthenticationForm is,
class AuthenticationForm(forms.Form):
    """
    Base class for authenticating users. Extend this to get a form
that accepts
    username/password logins.
    """
    username = forms.CharField(required = True, max_length = 30)
    password = forms.CharField(required = True, max_length = 30,
widget = forms.PasswordInput)
    def set_request (self, request):
        self.request = request


    def clean (self):
        user = authenticate(username=self.cleaned_data['username'],
password=self.cleaned_data['password'])
        if self.request and not
self.request.session.test_cookie_worked():
            raise ValidationError(_("Your Web browser doesn't appear
to have cookies enabled. Cookies are required for logging in."))
        if user is None:
            raise ValidationError(_("Please enter a correct username
and password. Note that both fields are case-sensitive."))
        elif not user.is_active:
            raise ValidationError(_("This account is inactive."))
        else:
            self.user = user
        return super(forms.Form, self).clean()
--~--~---------~--~----~------------~-------~--~----~
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 [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to