你好,我的 Django 有一个问题,我有一个错误:
CSRF token 丢失或不正确。
我的代码是:
<h1>Registro de llamadas</h1>
<form action="{% url 'registro:guardar' %}" method="post">
{% csrf_token %}
Duracion: <input type="text" name="duracion" /> </br>
Tipo de llamada:
<select name="tipo" form="carform">
<option value="1">Local</option>
<option value="2">Nacional</option>
<option value="3">Internacional</option>
</select>
</br>
<input type="submit" value="Grabar" />
</form>
{% if llamadas %}
<ul>
{% for ll in llamadas %}
<li><a href="a">{{ ll.duracion }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No tenemos ninguna llamada</p>
{% endif %}
和views.py我有:
from django.http import HttpResponse
from django.template import loader
def index(request):
template = loader.get_template('registro/index.html')
return HttpResponse(template.render(request))
def guardar(request):
template = loader.get_template('registro/index.html')
return HttpResponse(template.render(request))
请帮忙,我搜索了其他问题但没有解决我的问题。
谢谢!
最佳答案
为了让 CSRF token 正常工作,您需要包含 RequestContext
当您使用模板时。
为了避免额外的样板文件,这涉及 django 附带的快捷功能,该功能会在渲染模板时自动为您添加此功能。这是django.shortcuts.render
。
要使用此功能,请更改您的观点。
from django.shortcuts import render
def guardar(request):
return render(request, 'registro/index.html', {})
了解更多信息this page Django 文档非常有用。
关于python - 403 - CSRF token 丢失或不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37730332/