2017-02-21 3 views
1

포럼에서 수집 할 수있는 모든 것을 시도했지만 여전히 도움이 필요합니다. 양식을 제출할 때 계속 CSRF token missing or incorrect 오류가 발생합니다. 그것은 잘 작동하는 데 사용되는 몇 가지 변경 사항을 지금은 다시 얻을 수 없습니다 .. 나는 {% csrf_token %}RequestContext 사용하고 있습니다. reverse을 사용해 보았습니다. csrf middleware에 대한 settings.py 미들웨어를 확인하고, 서버를 다시 시작하고 HttpResponseRedirecttemplate.render() 대신 HttpResponse을 사용해 보았습니다. {% url %} 태그 대신 URL 경로를 사용해 보았습니다. 내 프로젝트의 다른 부분에서 난 RequestContext를 사용하지 오전 그것을 잘 작동합니다 ..csrf 및 요청 컨텍스트를 사용하여 실패했습니다.

signup_page.html :

<p>Sign Up Below 
</p> 
    <form action={% url 'signup_page' %} method="post"> 
    {% csrf_token %} 

    .... 

    Email 
    <input type="email" name="email" required="true"><br><br> 

    <input type="submit" value="POST"> 

</form> 

views.py

def signup_page(request): 
    template = loader.get_template('user_app/signup_page.html') 

    if request.method == "POST": 
     ... 
     email = request.POST['email'] 
     kwargs = { 
      'username':username, 'password':password, 'first_name':first_name, 
      'last_name':last_name, 'email':email 
     } 
     new_user = User.objects.create(**kwargs) 
     new_user.save() 

     context = { 
      'text':"POST", 'first_name':first_name 
     } 

     return HttpResponseRedirect(render('signup_page', context, context_instance =RequestContext(request))) 
    else: 
     return HttpResponse(template.render(RequestContext(request))) 

urls.py :

from django.conf.urls import url 
from user_app.views import signup_page, profile 

urlpatterns = [ 
    url(r'^signup', signup_page, name="signup_page"), 
    url(r'^profile', profile, name="profile") 
] 
+0

쇼 urls.py 파일 –

+0

는 오토 로그 나 장고 내가 어떻게 든보다 사용자를 만들 때와 같은 urls.py – ratrace123

+0

이 될 수있는 일 업데이트? 그래서 이미 로그인되어 있고 새로운 사용자를 만들려고합니까? – ratrace123

답변

0
from django.shortcuts import render 

#create your views here 
def your_function(request): 
    #do whatever you want here... 
    context = {'any_data': 'you_want_to_send'} 
    return render(request,'your.html',context) 
+0

이 방법은 어떤 이유로 작동하지만 왜 아무 생각이 없습니다 ... HttpResponse가 작동하지 않는 이유를 알고 계십니까? – ratrace123

+0

@ ratrace123, 그렇습니다. 렌더링 자체가 http 응답이므로 다른 응답 객체에 응답 객체를 래핑합니다. 이것이 프론트 엔드에서 csrf 토큰이 숨겨진 이유입니다. 대답을 수락하면 좋을 것입니다. –

+0

이것은'@ csrf_protect' 데코레이터를 제거 할 때조차도 작동합니다 .. HttpResponse가'csrf'와 함께 작동하지 않는 것처럼 .. – ratrace123