您好,提前谢谢您。这是来自以下线程的跟进问题(不确定我是否应该在那里发布或开始一个新线程......:
CSRF token missing or incorrect even though I have {% csrf_token %}
我不确定我需要对代码做什么才能使 csrfContext 正常工作。我正在尝试使用 ModelForm 将数据收集到模型并将其写入 MYSQL 表。我收到错误:
Reason given for failure:
CSRF token missing or incorrect.
代码如下:
from django.shortcuts import render_to_response
from djengo.template import RequestContext
from django.http import HttpResponse, HttpRequest, HttpResponseRedirect
from acmetest.models import Player
from acmetest.models import PickForm
csrfContext = RequestContext(request)
return render_to_response('makepick.html', csrfContext)
def playerAdd(request, id=None):
form = PickForm(request.POST or None,
instance=id and Player.objects.get(id=id))
# Save new/edited pick
if request.method == 'POST' and form.is_valid():
form.save()
return HttpResponseRedirect('/draft/')
return render_to_response('makepick.html', {'form':form})
再次,
感谢您的帮助!
dpbklyn
请您参考如下方法:
因此更新您的代码:
from django.shortcuts import render
# from djengo.template import RequestContext <- this is not valid.
正如 Yuji 所指出的,这两行不是有效的 python,此外,如果您使用 render,则它们不是必需的。捷径。
# csrfContext = RequestContext(request)
# return render_to_response('makepick.html', csrfContext)
修改您的返回行:
# return render_to_response('makepick.html', {'form':form})
return render(request,'makepick.html',{'form':form})
