[BangPypers] Django URLs -> New URLs are getting appended with the previous one

Hussain Bohra hussainbohra_30 at yahoo.com
Thu Dec 18 11:44:43 CET 2008


Hi All,

I am trying my hands in a Django with a small application,  I am making one login page and acceptance / failure of a user name and password.

My functions for same:

How Submit button is Contructing 
def SubmitButton()
    return  '<INPUT TYPE="BUTTON" NAME="%s" VALUE="%s"  %s;>' % (self.name, self.label)

views.py

from django.http import HttpResponse
from html_tags import *
def loginPage(request) :
    title = ('Hi, Welcome ',"")
    text1 = ("Enter Your Name", "%s"%(toHTML(TextField('name'))))
    text2 = ("Enter Your Password","%s"%(toHTML(TextField('password',type='password'))))
    buttons = (toHTML(SubmitButton('init','Login')),CloseButton('Close'))
    content = toHTML(
                    Table([title,
                               text1,
                               text2,
                               buttons]
                    ))
    ret = '<FORM NAME="contentForm" method=GET enctype="multipart/form-data">'
    ret += content 
    ret += '</FORM>'
    return HttpResponse(ret)

def initialize(request):    
    get = request.GET.__copy__()
    name = smart_str(get.pop('name')[0])
    password = smart_str(get.pop('password')[0])
    ret = '<FORM NAME="contentForm" method=GET enctype="multipart/form-data">'
    #request.META.update({'HTTP_REFERER' : 'http://127.0.0.1:8000/'})
    if name == 'hussain.bohra' and password == 'password' :
        ret += toHTML(
                       Table([('Authorization Successful.',""),
                       ('You can further proceed',"")
                       ])
                      )
    else :  
        ret += toHTML(
                        Table([('Authorization Failed.',""),
                        (toHTML(SubmitButton('login','Back')),"")
                        ])
                        )
    ret += '</FORM>'
    return HttpResponse(ret)


and I have mapped a url with these functions, in a url.py file for Django Project.
    (r'^init/$', 'myproject.views.initialize'),
    (r'^login/$', 'myproject.views.loginPage'),

The problem I am facing here is when I am accessing http://127.0.0.1:8000/login my loginPage function will get called, if I do a submit, url trying to open is http://127.0.0.1:8000/login/init .... instead of http://127.0.0.1:8000/init, in that case I have to map /login/init with my initialize function instead of /init and if from http://127.0.0.1:8000/login/init  I want to back to login page using my button, url appears as http://127.0.0.1:8000/login/init/login, i.e. all the previous url it is keeping.

but if I make my own webserver (override do_GET and do_POST function), there my self.path (which contains URL), is coming properly, i.e. /login, /init .... 

In Django, also I able to fix the same by making a small change in 'C:\Python25\Lib\site-packages\django\core\handlers\wsgi.py' file by splitting the url and by getting the last instance and by putting in self.path. But this is not a right way to do the same, is any one know what else can be done for the same, so that the urls should not carry forward. I tried changing the request.META.['PATH_INFO'] = u'/', in my functions, but this also doesn't able to solve the issue.

 
Thanks and Regards,
Hussain Bohra


      Add more friends to your messenger and enjoy! Go to http://messenger.yahoo.com/invite/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/bangpypers/attachments/20081218/471d4368/attachment-0001.htm>


More information about the BangPypers mailing list