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, ...});


