python - 403 - CSRF token 丢失或不正确

标签 python django

你好,我的 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/

相关文章:

python - 更改事件键上的光标形状

python - 在 Django 中处理 subprocess.call()

python - 在图像之上绘制

python - Flask SQLite 查询

python - 当 DEBUG=False 时服务器错误 500

Django 包含模板问题,从 0.96 到 1.2

python - 为什么我的 Kivy Actionbar 不见了?

mysql - 以编程方式识别 Django 外键链接

python - 使用ForeignKey关系将数据保存到Django中的模型中

django - Django中的多个站点