通过 Django 模板 url 标签传递变量
Passing variable through Django template url tag
我试图通过 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,代码工作正常。
所以我的问题是,我怎样才能使它与变量一起工作。
您不能在 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
我试图通过 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,代码工作正常。
所以我的问题是,我怎样才能使它与变量一起工作。
您不能在 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