Hello,

You should show the login if the method != "POST".
By calling render_to_response(...) it will render your template, so that is
what the view must return.

I think you want something like this:

def my_view(request):
  if request.method == "POST" :
      username = request.POST['username']
     password = request.POST['password']
     user =  authenticate(username=username, password=password)

     if user is not None:
        if user.is_active:
           login(request,user)
           return render_to_response('success.html',
{'username':username})
        else:
           return HttpResponse('disabled account')
     else:
        return HttpResponse('invalid login')
   else:
     *return render_to_response* ('login.html', {'username': username,
'password' : password})

Regards,
Matias.

On Tue, Dec 16, 2008 at 1:17 AM, vierda <m...@pensil.com> wrote:

>
> Hi Matias,
>
> Thanks for your reply but I did'nt get your point. sorry I'm newbie
> and still learning.
> I modified my_view function in my views as your suggestion (if I
> didn't wrong get your point) as per below:
>
> def my_view(request):
>   if request.method == "POST" :
>       username = request.POST['username']
>      password = request.POST['password']
>      user =  authenticate(username=username, password=password)
>       render_to_response ('login.html', {'username': username,
> 'password' : password})
>
>      if user is not None:
>         if user.is_active:
>            login(request,user)
>            return render_to_response('success.html',
> {'username':username})
>         else:
>            return HttpResponse('disabled account')
>      else:
>         return HttpResponse('invalid login')
>    else:
>      return HttpResponse ('home page')
>
> above code run and shows home page text, I assume that the method is
> not POST regarding the result.
> What sholud I do to fix this and show my login page. somebody please
> help me to understand this concept. Thank you
>
> regards,
> -Mila-
>
>
>
> On Dec 15, 9:06 am, Matias <gonzalezmat...@gmail.com> wrote:
> > Hello,
> >
> > You should check by which method was called your view.
> > something like
> >
> > if request.method == "POST":
> >     #now you can use request.POST
> > else:
> >     #just show the template
> >
> > Hope that helps,
> >
> > Matias.
> >
> >
> >
> > On Mon, Dec 15, 2008 at 5:15 AM, vierda <m...@pensil.com> wrote:
> >
> > > Dear Ronny/all,
> >
> > > Thank you for your reply. I have modified my code and the error still
> > > occur.
> > > my new code as following below:
> >
> > > def my_view(request):
> > >   username = request.POST['username']
> > >   password = request.POST['password']
> > >   user =  authenticate(username=username, password=password)#create
> > > Authentication object
> > >    render_to_response ('login.html', {'username': username,
> > > 'password' : password})
> >
> > >   if user is not None:
> > >      if user.is_active:
> > >         login(request,user)
> > >          return render_to_response('success.html',
> > > {'username':username})
> > >      else:
> > >         return HttpResponse('disabled account')
> > >    else:
> > >      return HttpResponse('invalid login')
> >
> > > and my login.html as per below:
> > > <form action="/login/"  method="POST">
> >
> > > Enter Username: <input type=text name="username">
> > > Enter Password: <input type=password name="password">
> > > <input type="submit" Value="Login"/>
> > > </form>
> >
> > > my success.html as per below :
> > > <html>
> > > <h1> welcome{{username}}</h1>
> > > </html>
> >
> > > somebody kindly help and thank you in advance
> >
> > > On Dec 6, 12:05 am, "Ronny Haryanto" <ro...@haryan.to> wrote:
> > > > On Sat, Dec 6, 2008 at 2:42 PM, vierda <m...@pensil.com> wrote:
> > > > > today I try to make login page with follow example code in
> > > > > djangoproject (user authentication chapter), code as following
> below :
> >
> > > > > def my_view(request):
> > > > >   username = request.POST['username']
> > > > >   password = request.POST['password']
> > > > >   user =  authenticate(username=username, password=password)#create
> > > > > Authentication object
> >
> > > > >   if user is not None:
> > > > >      if user.is_active:
> > > > >         login(request,user)
> > > > >         return HttpResponse('login success')
> > > > >      else:
> > > > >         return HttpResponse('disable account')
> > > > >   else:
> > > > >      return HttpResponse('invalid login')
> >
> > > > > the above code always shows MultiValueDictKeyError with exception
> > > > > value "Key 'username' not found in <QueryDict: {}>".
> >
> > > > That exception will always be raised if the view is called via GET
> > > > method instead of POST.
> >
> > > > If you're sending it via POST, then the information you provided was
> > > > not sufficient. We need to see template code that renders the form
> (or
> > > > the html form if you're not using templates) and probably the form as
> > > > well.
> >
> > > > Ronny
> >
> > --
> > :wq
> >
>


-- 
:wq

--~--~---------~--~----~------------~-------~--~----~
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