|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 yjsx86 于 2018-1-5 05:48 编辑
情况是这样的
模板中的{% csrf_token %}渲染不出来
1 setting文件 中间件 已经添加了django.middleware.csrf.CsrfViewMiddleware
- MIDDLEWARE = [
- 'django.middleware.security.SecurityMiddleware',
- 'django.contrib.sessions.middleware.SessionMiddleware',
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.csrf.CsrfViewMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- 'django.middleware.clickjacking.XFrameOptionsMiddleware',
- ]
复制代码
2 模板中给form标签添加了{% csrf_token %}
- <form action="/blog/create/" method="post">
- {%csrf_token%}
- Title:
- <input type=text name=title><br>
- Body:
- <textarea name=body rows=3 cols=60></textarea><br>
- <input type=submit>
- </form>
复制代码
3 视图函数(相当于控制器)中使用 render_to_response()来渲染模板
- #views.py
- def archive(request):
- posts = BlogPost.objects.all()[:10]
- return render_to_response('archive.html', {'posts': posts}, RequestContext(request))
复制代码
csrf_token死活渲染不出来
最后使用render()渲染成功,并且感觉更简单
- #views.py
- def archive(request):
- posts = BlogPost.objects.all()[:10]
- return render(request, 'archive.html', {'posts': posts})
复制代码
发这贴是想问问如何在使用render_to_response()渲染模板时显示csrf_token
官方定义模版渲染,用的必须是render,要不然就自己获取token,加到form中
|
|