在我的django-view中,我使用pandas创建一个数据透视表,然后通过上下文将其传递给模板。这很好用。我希望列的标题是触发新视图的链接。所以我写了一个简单的jQuery脚本来做到这一点。但是一旦我想用url模板标签传递一个kwarg,我就会遇到问题。
$(document).ready(function(){
$('thead th').each(function(){
$(this).html('<a href="{% url "cat_view" cat="' + $(this).html() +'" %}">'+ $(this).html() +'</a>');
});
});
我收到以下错误:
反向&#39; cat_view&#39;参数&#39;()&#39;和关键字参数 &#39; {&#39; cat&#39;:&#34;&#39; + $(this).html()+&#39;&#34;}&#39;未找到。尝试过1种模式: [&#39;类别/ - / $&#39(P [\ W] +);]
我的网址条目如下所示:
url(r'category/(?P<cat>[\w-]+)/$', categoryView, name='cat_view'),
我是否在语法上出错或者这是我的方法的一般问题?错误消息表明,django解释了我在jQuery脚本中编写的内容,而不是jQuery应该传递给django的内容..但我不知道如何避免这种情况..
答案 0 :(得分:1)
是的,问题是Django在解释JQuery代码之前呈现URL。我会改用GET参数:
$(document).ready(function(){
$('thead th').each(function(){
var html = $(this).html();
var url = "{% url "cat_view" %}?cat=" + html;
$(this).html('<a href="' + url + '">'+ html +'</a>');
});
});