0

나는 을 기반으로하는 정말 기본적인 django 로그인 앱을 실행하고 있으며 ... 여전히 내가하고있는 일과 상관없이 여전히 작동하지 않으며 StackOverflow에 대한 모든 질문을보고 대답을 찾지 못했습니다. 나는 django.VERSION 1.5.0을 돌리고있다.CSRF 확인 실패 : Django 1.5.0

내가 코드를 추가하거나 할 매 일, 난 여전히 CSRF verification failed 오류가 발생합니다. 내 포털 내부

/views.py :

포털/템플릿 내부
@cache_page(60 * 15) 
@csrf_protect 
def index(request, id=None): 
    return render_to_response('undercovercoders/index.html',  context_instance=RequestContext(request)) 

@cache_page(60 * 15) 
def login_user(request): 
    if request.POST: 
     username = request.POST.get['username'] 
     password = request.POST.get['password'] 
     user = authenticate(username=username, password=password) 
     if user is not None: 
      if user.is_active: 
       login(request, user)    
       state = "You're successfully logged in!" 
      else: 
       state = "Your account is not active, please contact the site admin." 
     else: 
      state = "Your username and/or password were incorrect." 
    return render_to_response('undercovercoders/index.html', {'state':state, 'username':username}, context_instance=RequestContext(request)) 

/index.html을 :

urls.py에서
<div id="login-box"> 
      {% if form.errors %} 
      <p>Your username and password didn't match! Please try again!</p> 
      {% endif %} 
      {{ state }} 
      <form class="login-widgets" action="/login/" method="post">{% csrf_token %} 
       Username : 
       <input class="login-widgets-text" type="text" name="username" value="{{ username }}" /> 
       {{ form.username }}<br /> 
       Password : 
       <input type="password" name="password" value="{{ password }}" /> 
       {{ form.password }}<br /> 
       <input class="login-button" type="submit" value="login" /> 
       <input type="hidden" name="next" value="{{ next }}" /> 
      </form> 

/로그인/다음

(r'^login/$', 'portal.views.login'), 
,536,913로 정의

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    # Uncomment the next line for simple clickjacking protection: 
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware', 
) 

이 도와주세요, 나는 모든 저녁이 오류와 함께 레슬링 봤는데 : 63,210

settings.py는 다음과 같습니다.

편집 :이 (가) 변경 추가 할 때 내 콘솔은 나에게이 반환 내 렌더링 : 귀하의 의견

return render(request, 'template/index.html', {'state':state, 'username':username}, c) 

에서

/Library/Python/2.7/site-packages/django/template/defaulttags.py:59: UserWarning: A {% csrf_token %} was used in a template, but the context did not provide the value. This is usually caused by not using RequestContext. 
    warnings.warn("A {% csrf_token %} was used in a template, but the context did not provide the value. This is usually caused by not using RequestContext.") 

[07/Aug/2013 21:44:25] "GET/HTTP/1.1" 200 2881 
[07/Aug/2013 21:44:25] "GET /static/css/screen.css HTTP/1.1" 304 0 
[07/Aug/2013 21:44:29] "POST /login/ HTTP/1.1" 403 2282 
+1

당신은 사용자 정의 로그인보기를 작성했으나 URL은 내장 된 django 로그인보기를 가리 킵니다. 그래서 당신은 그것을 바꿀 수도 있습니다. 또한 html에 {% csrf_token %}을 (를) 포함 시키십시오. –

+0

살펴 줘서 고마워. 토큰은 html에 있습니다. 사용자 정의로 변경하거나 내장을 사용하면 문제가되지 않지만 작동하지 않습니다. – gersande

+1

@csrf_exempt 이 해결책이 될 수 있습니다. 자주 사용하지 마십시오. – Bit68

답변

1

당신이 지금

return render(request, 'template/index.html', {'state':state, 'username':username}) 

을 수행해야합니다 RequestContext의 사용을 강제하는 context_instance 인수 대신에 c를 전달하고 있습니다.

+0

오류가 계속 발생합니다. C 대신 context_instance를 사용해야합니까? – gersande

+0

나는 방금 당신이 {...}을 추가했다는 것을 보았습니다. 나는 그것을 넣고 볼 것입니다. – gersande

+0

Nope. : c 작동하지 않습니다. – gersande