我试图通过Django模板url标记传递变量,但收效甚微。
我在urls.py中的路径:
path("viewListing/<int:listingID>", views.bookListing, name="viewListing")
在模板中,我使用javascript生成带有for循环的listingID。
for(j=0; j<5; j++){
var thisID = (data[j].id)
imgA.href = "{% url 'viewListing' thisID %}";
}
但是,我收到此错误
Reverse for 'viewListing' with arguments '('',)' not found. 1 pattern(s) tried: ['viewListing/(?P<listingID>[0-9]+)$']
如果我传递一个数字而不是thisID(例如1),则代码可以正常工作。
所以我的问题是,如何使它与变量一起工作。
答案 0 :(得分:0)
您不能在Javascript中使用django标签。它们是服务器端。相反,您可以做的是将URL缓存在变量中,然后将ID像这样连接起来:
for(j=0; j<5; j++){
var thisID = (data[j].id)
var listing_url = "{% url 'viewListing' listingID=9999 %}";
imgA.href = listing_url.replace(/9999/, thisID);
}
贷记到@MikeLee: Get javascript variable's value in Django url template tag