我有以下脚本:
jQuery(document).ready(function($) {
$( "#continue" ).click(function() {
var selected = $("#meds").bootgrid("getSelectedRows");
window.location = "{% url 'meds:prescription' selected %}"
});
});
和这个观点:
class PrescriptionView(generic.ListView):
template_name = 'meds/prescription.html'
context_object_name = 'meds'
model = Medicament
def get_queryset(self):
return Medicament.objects.filter(id__in=self.kwargs['selected'])
使用此网址:
url(r'^prescription/(?P<selected>.*)/$', views.PrescriptionView.as_view(), name='prescription')
知道selected是一个数组,例如[3, 6, 4]
我试图用它来显示那个数组在该数组中的对象但是由于某种原因,即使数组已满,也没有传入这个网址看起来像这个http://127.0.0.1:8000/prescription//
有一个空页面,就像参数没有通过一样
答案 0 :(得分:1)
那是因为selected
变量被解析为Django模板变量,但实际上并非如此。它是一个JS变量,因此,它被解析为一个空字符串。
但有一种解决方法:
jQuery(document).ready(function($) {
$("#continue").click(function() {
var selected = $("#meds").bootgrid("getSelectedRows");
var url = "{% url 'meds:prescription' 'test' %}"; // 'test' is just a placeholder value
url = url.replace('test', selected); // replace 'test' with the 'selected' value
window.location = url;
});
});