来自js文件的django模板url

时间:2017-04-10 17:26:05

标签: jquery django datatables django-templates

在django项目中,我urls.py喜欢url(r'^data/$', get_data, name='data'),

我可以在我的模板data.html中添加<a href='{% url 'data' %}'>Create New Data</a>,但效果很好。当我点击链接时,会显示localhost://data

现在我使用data.js中的jquery和datatable动态显示表格,并且我能够使用以下代码创建可点击的表格单元格:

$('#table').DataTable( {
     "columnDefs": [
            {
                "render": function (data, type, row){
                    return "<a href='blawblawblaw'>Click cell</a>";
             },
             ]
})

我可以通过上面的return语句传递url吗?

之类的东西

return "<a href='{% url 'data' %}'>Click cell</a>";

如果我尝试使用上面的内容,则The current URL, {% url, didn't match any of these.

会出现错误404错误

1 个答案:

答案 0 :(得分:1)

因为语法如:'{% url 'data' %}'用于django模板,Django将在服务器端呈现HTML,然后将呈现的HTML响应给客户端。

当我们在render(request, template)中致电views.py时,Django会填写模板中写的内容,如:{% url 'data' %}

如果您的网址对于每个数据对象都相同,则可以使用Django将js代码粘贴到模板中以呈现内容。

如果您的网址是每个数据对象的动态更改,我会为数据对象提供其他信息字段,如:"url""id",以便客户端可以获取正确的网址路径。

Django中的语法如:{% .... %}用于服务器端,不用于客户端。您可以打开开发人员工具,查看返回值,然后您将看到原始字符串:"<a href='blawblawblaw'>Click cell</a>"