我试图让 POST 方法在 Python DJango 中工作。但无法成功实施 CSRF。
这是我在 Views.py 中的内容
def showTime(request):
t = get_template('FR/current_datetime.html')
htmlContent = t.render(Context({"day_list": ['wednesday','thursday','friday'] , "current_date": datetime.datetime.now()} ))
return HttpResponse(htmlContent)
def showWeekEnd(request):
c = {}
c.update(csrf(request))
if request.method == 'POST':
return render_to_response('EN/current_datetime.html', c)
我的 URL 模式是
url(r'^showTime/$', showTime),
url(r'^$', showTime),
url(r'^showWeekEnd/$', showWeekEnd),
我也启用了
MIDDLEWARE_CLASSES = (
'django.middleware.csrf.CsrfViewMiddleware',
)
我有(EN/current_datetime.html)
<form action="/showWeekEnd/" method="post">{% csrf_token %}
为此我得到
TypeError: csrf() takes exactly 1 argument (0 given)
如果我必须传递更多参数。当我启动应用程序本身时出现此错误,并显示“发生服务器错误。请联系管理员。”
请解释发生了什么问题?