模板中的 Django 和选项卡式导航

Posted

技术标签:

【中文标题】模板中的 Django 和选项卡式导航【英文标题】:Django and tabbed navigationin templates 【发布时间】:2013-11-01 16:59:05 【问题描述】:

我正在构建一个 django 项目,其中包括一个客户模型。任何客户都可以是某些日历条目模型或某些图片模型的外键。我希望能够进入客户页面(例如 domain/customoer/1)并能够导航到与客户相关的不同模型(例如客户的所有图片、客户的所有日历条目)。我正在使用引导程序来“展示网站。我的想法是使用选项卡。所以我为我的主模板 customer.html 创建了一个 pil

<ul class="nav nav-pills">
    <li class="active"><a href="#personal-data" data-toggle="pill">Personal Data</a></li>
    <li><a href="#history" data-toggle="pill">History</a></li>
    <li><a href="#analysis" data-toggle="pill">Analysis</a></li>
    <li><a href="#diagnosis" data-toggle="pill">Diagnosis</a></li>
    <li><a href="#treatment" data-toggle="pill">Treatment</a></li>
    <li><a href="#appointments" data-toggle="pill">Appointments</a></li>
    <li><a href="#graphics" data-toggle="pill">Graphics</a></li>
</ul>

我正在考虑为每个药丸添加一个模板

<div class="tab-content">
    <div id="personal-data" class="tab-pane active ">
    <div id="history" class="tab-pane">History is in the making</div>
    <div id="analysis" class="tab-pane">
        % include 'customer/analysis.html' with customer=customer %
    </div>
    <div id="diagnosis" class="tab-pane">Diagnosis is differential</div>
    <div id="treatment" class="tab-pane">Treatment what treatment??</div>
    <div id="appointments" class="tab-pane">Ap point ment</div>
    <div id="graphics" class="tab-pane">Now this is going to be hard!</div>

每个标签中的模板可以做不同的事情,比如上传图片导航到不同的页面等。

当我点击药丸时,url (domain/customer/1/) 不会(自然地)改变以告知我当前所在的选项卡。所以我的问题是我怎么知道我现在在哪个标签中?我希望用户能够从不同的选项卡(上传图片等)做不同的事情,并且我希望能够在调用视图后重定向到特定的选项卡?也许可以将#id 附加到 url 以指定选项卡,但它不会发生在 bootstrap 中。

在 django 中处理选项卡的最佳方法是什么?也许是阿贾克斯?我不会有同样的问题吗?任何想法或语言也会很好

【问题讨论】:

【参考方案1】:

我对这种事情使用模板继承。它简单而灵活。例如,您可以像这样在基本模板中定义主导航:

...
<li % block news %% endblock %>News</li>
<li % block features %% endblock %>Features</li>
<li % block sport %% endblock %>Sport</li>
...

然后,在每个应用程序的基本模板中,您将拥有如下内容:

<!-- news/base_news.html -->
% extends 'base.html' %
...
% block news %class="active"% endblock %
...

【讨论】:

非常感谢您的回答。最后一件事。如果我有扩展基础的 news.html。我想要扩展 news.html 的 international_news.html。可以做到吗?我可以在 news.html 中创建 international_news.html 将看到的新块吗? @Apostolos 是的,你可以做这两件事。

以上是关于模板中的 Django 和选项卡式导航的主要内容,如果未能解决你的问题,请参考以下文章

使用swift在选项卡式视图中的导航栏上添加按钮

带有选项卡式导航的 Cocoa-Touch 后退按钮

如何从父 shell 选项卡式页面导航到 shell 选项卡式页面

如何在 XAML 中居中​​选项卡式页面选项卡图标和/或文本?

Layui(三):导航菜单、选项卡、进度条和面板

使用单个视图启动应用程序然后导航到选项卡视图?