有很多关于Django和AJAX使用的帖子和页面,我在过去的一天左右阅读了数百篇文章以寻找这个问题的答案。简要概述:
许多示例都显示硬编码的URL,如下所示:
$.post("/projects/create/", {"name" : name}, function(data) {...
有些人使用URL模板标签,但没有参数:
$.post("{% url create_project %}", {"name" : name}, function(data) {...
然而,我想在URL中包含一个Django风格的参数。以下是我的URL定义:
url(r'ajax/entity_name/(?P<pk>\w+)/$',EntityAjaxView.as_view(),name='entity_name'),
是的,我正在使用基于类的视图,并且它是基于DetailView。此视图默认情况下查找URL中提供的pk值,在普通模板中,我会使用:
```html {{ object.pk }} ```
来获取对象的主键值。
{% url entity_name id_number %}
提供一个链接。在我的代码中,我想获取输入框中输入的pk值。以下是我的JavaScript片段(不起作用):
var id_number = $('#id_endowmententity_set-' + rownum + '-id_number').val()
$.ajax({
type: "GET",
url: '{% url entity_name id_number %}',
所以,我的问题是,我能否使用URL模板标签和来自输入框的值?
(我知道我可以使用POST而不是GET,并在POST数据中传递id_number,但这与DetailView不兼容。)
err_key="{% url 'pcd_list' %}"
,并使用它来创建一个链接,如$('#ajxErr').html(var_err + ' <a href=" ' + var_err_url + '">Check</a>');
,其中var_err_url
是从Ajax调用返回的err_key
值的变量。但是它失败了。 但是,如果我在我的函数视图中使用err_key="path_generated_from_named_url"
,它可以正常工作。是否有一种方法可以像我上面的第一个示例那样使用命名URL? - Love Putin Not War