2013-07-27 2 views
0

мой шаблон ниже:Django, почему я до сих пор не получил проверку CSRF?

<div id="divLogin"> 
       {% block login %} 
       <form action="/login" method="post"> 
        {% csrf_token %} 
        <label for="id_name"></label><input type="text" name="email" id="id_name" placeholder="Your Email"> 
        <label for="id_pass"></label><input type="password" name="password" placeholder="Your Password"> 
        <input type="submit" id="btnLogin" value="Log In" class="btn"> 
       </form> 
       {% endblock %} 
      </div> 

Я уже добавить {% csrf_token%} в шаблоне, и мой взгляд Войти является

def login_view(request): 
    if request.method == 'POST': 
     useremail=request.POST['email'] 
     password=request.POST['password'] 
     try: 
      user=User.objects.get(email=useremail) 
      if user.check_password(password): 
       uAuth=authenticate(username=user.username,password=password) 
       login(request,uAuth) 
       return render_to_response("blog.html",{'loginuser':user},context_instance=RequestContext(request)) 
     except User.DoesNotExist: 
      return redirect('/') 
    return redirect('/') 

Даже я использовал render_to_response и RequestContext я все еще получил ошибку. есть одна вещь, очень проводная, я ставлю точку останова на метод login_view, но ошибка csrf указывает, прежде чем она войдет в login_view methond. поэтому нет ответа об этом методе?

0 Коэфф.

У меня есть django.middleware.csrf.CsrfViewMiddleware в MIDDLEWARE_CLASSES в моих настройках.py.

+0

Вы можете вставить полный «след», пожалуйста? –

+0

Вы не обращаетесь с запросом 'GET'? – Rohan

+0

@VictorCastilloTorres Я не могу получить трассировку, ошибка «Ошибка проверки CSRF», прежде чем перейти к методу Login_view. @Rohan, что вы имеете в виду под рукой GET-запрос? –

ответ

0

Необходимо использовать перенаправление после post.

Перенаправить на представление, которое отображает ваш шаблон.

def login_view(request): 
    if request.method == 'POST': 
     useremail=request.POST['email'] 
     password=request.POST['password'] 
     try: 
      user=User.objects.get(email=useremail) 
      if user.check_password(password): 
       uAuth=authenticate(username=user.username,password=password) 
       login(request,uAuth) 
       return HttpResponseRedirect('/someurl') 
     except User.DoesNotExist: 
      return redirect('/') 
    else: 
     return render_to_response('login.html',context_instance=RequestContext(request)) 


def someurl(request): 
    if request.method == 'GET': 
     render_to_response("blog.html",  
       {'loginuser':user},context_instance=RequestContext(request)) 
+0

Я пробую вас метод, но он все еще не работает. кажется, что метод login_view никогда не выполнялся, потому что я не могу отлаживать его. Я не знаю, в чем проблема. –

+0

Как вы можете сделать вышеуказанный шаблон? Можете опубликовать полный просмотр? – rjv

Смежные вопросы