来自js文件的django模板url
Posted
技术标签:
【中文标题】来自js文件的django模板url【英文标题】:django template url from js file 【发布时间】:2017-09-05 20:44:42 【问题描述】:在 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】:因为 '% url 'data' %'
是 django 模板的语法,所以 Django 会在服务器端渲染 HTML,然后将渲染的 HTML 响应给客户端。
当我们在views.py
中调用render(request, template)
时,Django会填写模板中写的内容如:% url 'data' %
。
如果每个数据对象的 url 相同,则可以将 js 代码粘贴到模板中,使用 Django 呈现内容。
如果你的 url 是每个数据对象的动态变化,我会给数据对象附加信息字段如:"url"
或"id"
,以便客户端可以获得正确的 URL 路径。
语法如:% .... %
在 Django 中用于服务器端,而不用于客户端。你可以打开开发者工具,看看返回值,你会看到原字符串:"<a href='blawblawblaw'>Click cell</a>"
【讨论】:
% block content % <table id="table" class="table table-striped"> % endblock content %
这是我当前的data.html
,表格是从data.js
动态呈现的,所以我不确定如何在data.html
中为表格单元格添加% url 'data' %
?
对于第一个,您的意思是将data.js
复制到data.html
中吗?对于第二个,你能举个例子吗。
如果你的 url 中的 URL 是 const,你可以将你的 js body 粘贴到模板中,使用 Django 渲染函数来渲染你的数据。如果 js 中每个数据对象的 URL 不同,则应该在数据对象中添加一些 url 信息,然后在 js 中检索这些信息。以上是关于来自js文件的django模板url的主要内容,如果未能解决你的问题,请参考以下文章