사용자가 "아이디어"를 입력하고 데이터베이스에 저장할 수있는 웹 페이지를 작성하려고합니다. 폼의 Post 메서드를 사용하고 싶습니다. django page의 지침에 따라 시도했지만 인증은 여전히 실패합니다.장고 CSRF 토큰 인증 실패
이 내 양식 코드 :
<form action="/" method="post">
{% csrf_token %}
<p> Title: </p> <input type="text" name="title"> </br>
<p> Details: </p> <input type="text" name="details">
<input type="submit" value="Post">
</form>
내 URLconf는 /
라인과 Ideas.views.home
에 리디렉션
url(r'^$', 'Ideas.views.home' , name='home')
뷰 자체는 나는 또한이 일을 시도
from django.shortcuts import render, render_to_response
from django.http import HttpResponse
from django.template import loader, Template, Context, RequestContext
from django.core.context_processors import csrf
from Ideas.models import Idea
# Create your views here.
def home(request):
if request.method == 'POST':
submitted = Idea.objects.create(title=request.POST['title'], detail=request.POST['details'], votes=0)
submitted.save()
m = RequestContext(request, {"passed_ideas": Idea.objects.all()})
return render_to_response('basic.html', m)
입니다 :
from django.shortcuts import render, render_to_response
from django.http import HttpResponse
from django.template import loader, Template, Context, RequestContext
from django.core.context_processors import csrf
from Ideas.models import Idea
# Create your views here.
def home(request):
c = {}
c.update(csrf(request))
if request.method == 'POST':
submitted = Idea.objects.create(title=request.POST['title'], detail=request.POST['details'], votes=0)
submitted.save()
c['passed_ideas'] = Idea.objects.all()
return render_to_response('basic.html', c)
CSRF 인증을 작동 시키려면 어떻게해야합니까?
보기에 @csrf_exempt 데코레이터를 사용하면 csrf 토큰 유효성 검사가 필요 없습니다. 작동하면 더 많이 파고들 수 있습니다. – MartinM
@MartinM 고맙습니다. 적어도 지금은 개발을 계속할 수 있습니다! – elder4222
아무 문제 없어, klasske의 대답을보세요 – MartinM