【发布时间】:2017-05-19 02:59:28
【问题描述】:
我正在使用 Django 1.10.6 并尝试从数据表中的 javascript 函数生成 url
在 url.py 下,我有一个名为 profile setup 的页面,例如:
app_name = 'myapp'
urlpatterns = [
url(r'^profile/(?P<pk>[0-9]+)/$', views.ProfileView.as_view(), name='profile'),
]
在 javascript 中,我有一个 django 查询将数据发送到变量,数据显示在带有名称和 id 字段的表上:
var django_dat =[
{
"id": 1,
"name": "Jack Spicer",
},
{
"id":2,
"name": "Ted Cracker",
}
{
"id":3,
"name": "Justin Rollin",
}
{
"id":4,
"name": "Boaty Boat",
}
];
$(document).ready(function() {
var table = $('#dattable').DataTable({
data: django_dat,
columns: [{
'data': null,
'render': function(data, type, row, meta) {
//Django URL
return '<a href={% url 'myapp:profile' 2 %}>' + data.name + '</a>';}},
{
data: 'id'
}]
});
});
我正在尝试更改 URL,以便将名称链接到像 {% url 'myapp:profile' data.id %} 这样的 url。上面的代码被硬编码为 id=2 并且可以工作。
尝试将其更改为:
return '<a href={% url 'myapp:profile' '+ data.id+ ' %}>' + data.name + '</a>'
但这给出了一个无反向匹配错误Reverse for 'profile' with arguments '('+ data.id+ ',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['profile/(?P<pk>[0-9]+)/$']
也尝试使用替换功能:
return '<a href={% url 'myapp:profile' uid %}>'.replace('uid', data.id) + data.name + '</a>'
但遇到同样的错误
【问题讨论】:
标签: javascript python django function