如何在传单弹出窗口中创建 csrf 令牌,以便用户可以通过与表单交互将一些文本发布到数据库?我已经将{% csrf_token %}
标签添加到一个简单的 html 表单中,它工作正常,但是当我将它放在弹出窗口的内容部分时它不起作用,尽管其他 html 元素工作正常。
map.on('click', function(e) {
var popupContent = '<p>What would you like to post to this location? <form action="/post_temp/" method="post"> {% csrf_token %} <p> <input type="text" name="post"> </p> <input type="submit" value="Post"> </form>',
popup = new L.Popup();
popup.setLatLng(e.latlng);
popup.setContent(popupContent);
map.openPopup(popup);
});
基本上,当我将令牌留在其中时,Leaflet 地图不会完全加载,但如果我将其排除在外,我会收到 CSRF 令牌丢失或不正确的错误。
我对这一切(javascript/leaflet/web dev/django)有点陌生,所以我不确定问题出在哪里或应该从哪里开始?我想我将不得不在leaflet.js 代码周围戳一下,但我不确定我是否能够理解它。任何明确的建议或我可以插入的一些代码,或者只是为什么(用外行的话)代码不能正常工作!