On Wed, Jul 28, 2010 at 1:48 AM, jerry <jerryzhou2...@gmail.com> wrote:
> Hi: > I build a website and want to login the admin form by python code. I > have disabled the CSRF in my project and use urllib2 to post data. > here are my codes: > > ---------------------------------------------------------------------------------------------------------------- > import urllib > import urllib2 > import cookielib > > cj = cookielib.CookieJar() > url_login ='http://127.0.0.1:8000/admin/' > body = > > {'csrfmiddlewaretoken':'f85a33be11bd85108a1030fcce96a5ea','username':'root','password':'mypass','this_is_the_login_form':'1'} > opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) > opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 7.0; > Windows NT 5.1)')] > urllib2.install_opener(opener) > req=urllib2.Request(url_login,urllib.urlencode(body)) > u=urllib2.urlopen(req) > print u.read() > print urllib2.urlopen("http://127.0.0.1:8000/admin/sites/ > site/").read() > > ---------------------------------------------------------------------------------------------------------------- > > but the codes don't seem to work,here is some part of the response > > ----------------------------------------------------------------------------------------------- > .... > <p class="errornote">Looks like your browser isn't configured to > accept cookies. Please enable cookies, reload this page, and try > again.</p> > > <div id="content-main"> > <form action="/admin/" method="post" id="login-form"><div > style='display:none'><input type='hidden' name='csrfmiddlewaretoken' > value='678f0507075332a87211dff43d6f9ee4' /></div> > <div class="form-row"> > <label for="id_username">Username:</label> <input type="text" > name="username" id="id_username" /> > </div> > <div class="form-row"> > <label for="id_password">Password:</label> <input type="password" > name="password" id="id_password" /> > <input type="hidden" name="this_is_the_login_form" value="1" /> > </div> > <div class="submit-row"> > <label> </label><input type="submit" value="Log in" /> > </div> > </form> > .... > > Could anyone give some suggestion? > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to django-us...@googlegroups.com. > To unsubscribe from this group, send email to > django-users+unsubscr...@googlegroups.com<django-users%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. > > Hey Jerry The issue is in how Django admin tests to see if you accept cookies. Taking a quick look in django.contrib.admin.view.decorators the decorator staff_member_required tests to see if the cookie "testcookie=worked" exists. If you set that cookie your code should work. Hope that helps. -- Rory Hart http://roryhart.net -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-us...@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.