gpt4 book ai didi

javascript - 使用 Django 通过 AJAX URL 传递参数

转载 作者:行者123 更新时间:2023-11-28 18:02:46 25 4
gpt4 key购买 nike

下面是我的代码。 “n”在控制台中正确记录,如果我将“n”的值手动输入到 url: '{% url "delete_photo"iddy=2%}' 中,一切都会完美无缺。 las,当我尝试使用“n”作为变量时(见下文),它给我一个反向匹配未找到错误。有人可以帮忙吗?

JavaScript

 function test(n){
console.log(n);
$.ajax({
type: 'get',
url: '{% url "delete_photo" iddy=n%}',

datatype:'json',
success: function(data){
alert(n)
console.log(data)
console.log(n)
},
error: console.log("SSS"),

});}

html

{% for t in photos %}
<div id="photobox" ><img id="img_pb3"src="{{t.photo.url}}">
<div><a><span onclick="test({{t.id}})" class="closeBtn">&times;</span></div></a>
</div>
{% endfor %}

网址

urlpatterns = [
path('', views.explore, name='explore'),
path('home/', views.home, name='home'),
path('home/comment', views.comment, name='comment'),
path('home/photo_del/<iddy>', views.delete_photo, name='delete_photo')
]

观看次数

def delete_photo(request, iddy):

data = {'a':iddy, 'b': iddy}
return JsonResponse(data, safe=False)

最佳答案

你不可能这样做。您从根本上误解了后端 Django 代码和前端 Javascript 代码之间的关系。 Django 模板在服务器上完全评估,此时模板标签被转换为纯 HTML 文本。因此,Javascript 函数(在浏览器本身运行很久很久之后)无法传递要在模板标记中使用的参数。

做到这一点的唯一方法是使用虚拟值呈现 URL - 您知道 URL 本身不会出现的值 - 然后使用普通 JS 将 JS 中的值替换为参数中的值字符串替换函数。

老实说,最好从 URL 中完全删除 ID。除此之外,删除操作应该是 POST,而不是 GET - 您不希望 Googlebot 不小心抓取您的 URL 并删除您的所有项目 - 使用 POST,您可以在发布的数据中发送 ID。

关于javascript - 使用 Django 通过 AJAX URL 传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55051326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com