栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在AJAX调用中使用Django URL标记

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在AJAX调用中使用Django URL标记

Django是服务器端应用程序。Javascript是客户端的。Django模板在服务器上呈现,因此

{% url entity_nameid_number%}
在服务器端进行评估,然后将其值返回给客户端。正因为如此,您不可能将Django模板与javascript结合使用。但是,您可以做一些事情来解决您的问题。

由于您正在进行ajax调用,而ajax调用取决于某些用户输入,因此通常,客户端向Query
Server发送任何类型的用户输入到服务器的最佳途径是使用querystring(

?
URL中的后面)或通过发送一个
POST
数据。因此,最简单的方法是更改​​您的网址,而不是
pk
在网址中包含,而是让视图将其作为
GET
POST
数据的一部分来获取。

url(r'ajax/entity_name/$', EntityAjaxView.as_view(), name='entity_name'),

和视图(对不起,我不熟悉基于类的视图):

def entity_name(request):    pk = request.GET.get('pk')    ...

在我看来,这是最优雅的解决方案。但是,如果绝对需要在客户端上构建URL,则可以在服务器端生成模板URL,然后替换客户端上所需的任何部分以获取完整的URL。但是,这需要更多的维护,因此更容易出错。这种方法的简单js示例:

var id_number = $('#id_endowmententity_set-' + rownum + '-id_number').val(),    url = '{% url entity_name 0 %}'.replace('0', id_number);$.ajax({    type: "GET",    url: url,    ...});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410026.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号