Turns out I had my session backend specified wrong, so my sessions
were never being saved. However, I did run into a new problem - it
doesn't seem that a form object can be put into session?

Can anyone verify that this is true? When trying to stuff the form
object into session, I ran into pickling errors.

On Jan 13, 11:43 am, Brandon Taylor <btaylordes...@gmail.com> wrote:
> Hi everyone,
>
> I have a login form on every page and want to leverage the
> AuthenticationForm from contrib.auth. So, I thought I would have a
> middleware tier to process the request and check for a GET or POST and
> create the appropriate form, either bound or un-bound. Here is my
> middleware:
>
> from django.http import HttpResponse, HttpResponseRedirect
> from django.contrib.auth.forms import AuthenticationForm
> from django.contrib.auth import logout, authenticate, login
>
> class LoginMiddleware(object):
>     def process_request (self, request):
>         if request.method == 'POST':
>             if request.POST.get('login', False):
>                 authentication_form = AuthenticationForm
> (data=request.POST)
>
>                 if authentication_form.is_valid():
>                     login(request, authentication_form.get_user())
>                 else:
>                     request.session['authentication_form'] =
> authentication_form
>
>             if request.POST.get('logout', False):
>                 logout(request)
>
>             return HttpResponseRedirect(request.path)
>
>         else:
>             try:
>                 authentication_form = request.session
> ['authentication_form']
>             except KeyError:
>                 request.session['authentication_form'] =
> AuthenticationForm(request)
>
> This part works as expected. However, the really challenging part has
> been displaying the errors for the form. I added a Context Processor:
>
> def get_login_messages(request):
>
>     new_dict = {
>         'authentication_form' : request.session
> ['authentication_form'],
>     }
>
>     return new_dict
>
> To return the form instance that was set in session and pass it to the
> template. If I print the session 'authentication_form' from the
> console in my middleware if the form is invalid, the session is
> correct. It contains an instance of the form with all of the error
> messages.
>
> But, when I print the session from the Context Processor, I get the un-
> bound instance of the form, *without* error messages.
>
> Can anyone see what I'm doing wrong here? I have no idea what's
> happening to the "authenticated_form" session from the time it is set
> by the middleware and reaches the context processor.
>
> Help GREATLY appreciated,
> Brandon
--~--~---------~--~----~------------~-------~--~----~
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+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to