【发布时间】:2015-05-06 06:41:24
【问题描述】:
我在我的 django 应用程序中使用 jquery 数据表。我表中的每一行都有一个与对象一起指向另一个页面的命名 url。
{% url 'obj_details' obj.id %}。当我单击 url 时,我没有找到反向匹配错误。我已经详细检查了这个问题。 url obj_details 是存在于 urls.py 中的命名 url
url(r'^obj/(?P<pk>[\w-]+)/details$', objDetailsView.as_view(), name='obj_details')
datatables 使用另一个视图来获取所需的数据,如下所示
def objdtable(request):
obj_json_tuple = list(Obj.objects.all().values_list("objnum", "ob_field", "date", "price", "field2", "seller", "id"))
return HttpResponse(json.dumps(obj_json_tuple))
我在数据表中显示除 id 之外的所有字段都没有问题。
"columns": [
{ "": "fields.objnum"},
{ "": "fields.ob_field" },
{ "": "fields.date" },
{ "": "fields.price" },
{ "": "fields.field2" },
{ "": "fields.seller" },
]
如何将 objdtable 视图返回的 id 作为参数传递给 url obj_details?我已经尝试过{% url 'obj_details' fields.id %} 和{% url 'obj_details' id %},但两者都没有给出反向匹配发现错误。然后我在数据表中尝试了
"data":
{
'bid':fields.id
}
并将命名的网址更改为链接obj/data/details 我也尝试将数据更改为fields.id,但没有任何效果。如何访问 django 在数据表中传递的变量?我可以在 url 中使用该变量来解决问题。
PS:将 url 更改为 url(r'^/obj/(?P<pk>\d+)/details$, objDetailsView.as_view(), name='obj_details') 但它给了我没有找到反向匹配的错误,如下所示。
NoReverseMatch at /myapp/obj/list/Reverse for 'obj_details' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['myapp/obj/(?P<pk>\\d+)/details$']
html模板中的错误在下面粘贴的行中。
"defaultContent": "<a class='btn btn-success btn-sm' href="{% url 'obj_details' id %} " style='color:white'> <i class='fa fa-eye fa-lg'></i> </a>"
【问题讨论】:
-
检查你的错误,它说变量 ID 是空的。尝试将变量
id更改为一个数字,仅用于测试目的,例如{% url 'obj_details' 1 %},它应该像那样工作 -
{% url 'obj_details' 1 %}加载页面但没有数据表。根据控制台,问题在"defaultContent": "<a class='btn btn-success btn-sm' href="/myapp/obj/1/details "style='color:white'> <i class='fa fa-eye fa-lg'></i> </a>"行中,控制台报告的问题是Uncaught syntax error:unexpected string
标签: django variables datatables jquery-datatables