【发布时间】:2012-01-19 07:23:21
【问题描述】:
我正在尝试使用 Django 开发报告系统。我必须显示有关各种数据类别的报告。我已将每个类别作为 tab-tab1、tab2 等。是否可以为每个选项卡设置不同的模板而无需更改 url。 我已经尝试过模板继承,但这需要每个选项卡都有单独的 url。 我担心的是,如果选项卡的数量增加,那么 url 的数量也会增加。
有什么建议吗?
提前致谢。
【问题讨论】:
标签: django
我正在尝试使用 Django 开发报告系统。我必须显示有关各种数据类别的报告。我已将每个类别作为 tab-tab1、tab2 等。是否可以为每个选项卡设置不同的模板而无需更改 url。 我已经尝试过模板继承,但这需要每个选项卡都有单独的 url。 我担心的是,如果选项卡的数量增加,那么 url 的数量也会增加。
有什么建议吗?
提前致谢。
【问题讨论】:
标签: django
为什么 URL 数量增加会出现问题?
大概您不需要为每个选项卡单独的 URLconf 条目,您只需捕获 URL 中的选项卡名称并将其发送到视图:
url(r'^reports/(?P<tab_name>\w+)/$', views.reports, name='reports')
...
def reports(request, tab_name):
... do something depending on tab_name ...
【讨论】:
您可以只使用{% include %} 标签并包含不同的模板。
而且我认为最好为每个标签设置唯一的 URL,至少带有标签。
【讨论】:
您可以使用jquery tabs 之类的库来创建选项卡,然后按照@DrTyrsa 的建议通过include 或自定义模板标签(这将是我的个人偏好)单独加载每个模板。
这是一个示例(来自 twitter 上优秀的 bootstrap 框架):
<ul class="tabs">
<li class="active"><a href="#home">Home</a></li>
<li><a href="#profile">Profile</a></li>
<li><a href="#messages">Messages</a></li>
<li><a href="#settings">Settings</a></li>
</ul>
<div class="pill-content">
<div class="active" id="home">...</div>
<div id="profile">...</div>
<div id="messages">...</div>
<div id="settings">...</div>
</div>
<script>
$(function () {
$('.tabs').tabs()
})
</script>
【讨论】: