Django CMS:如何修改 show_menu 的样式

Posted

技术标签:

【中文标题】Django CMS:如何修改 show_menu 的样式【英文标题】:Django CMS: How to modify style of show_menu 【发布时间】:2018-03-26 00:30:35 【问题描述】:

我想从https://startbootstrap.com 上找到的模板构建一个 Django CMS 模板。

我已经加载了以下标签

% load cms_tags menu_tags sekizai_tags staticfiles %

然后在<body> 部分菜单中

...
<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
  <div class="container">
    <a class="navbar-brand" href="#">Start Bootstrap</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarResponsive">
      <ul class="navbar-nav ml-auto">
        % show_menu 0 100 100 100 %
      </ul>
    </div>
  </div>
</nav>
...

不幸的是,菜单中页面的链接几乎没有 CSS(见图)。

基本上,链接需要属于nav-link 类。我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

您可以为菜单标签使用自定义模板;

<ul class="dropdown">
    % show_menu 1 100 100 100 "partials/navigation.html" %
</ul>

然后在partials/navigation.html;

% load cms_tags menu_tags cache cms_page %

% for child in children %

    <li class="nav-link">
        <a href=" child.attr.redirect_url|default:child.get_absolute_url "> child.get_menu_title </a>
        % if child.children %
            <ul class="sub_menu">
                % show_menu from_level to_level extra_inactive extra_active template '' '' child %
            </ul>
        % endif %
    </li>

% endfor %

【讨论】:

我尝试了您的解决方案。但它没有显示我想要的子菜单。请你看看这个question【参考方案2】:
<li class="nav-item">
    <a class="nav-link" href=" child.attr.redirect_url|default:child.get_absolute_url "> child.get_menu_title </a>
    % if child.children %
        <ul class="sub_menu">
            % show_menu from_level to_level extra_inactive extra_active template '' '' child %
        </ul>
    % endif %
</li>

【讨论】:

以上是关于Django CMS:如何修改 show_menu 的样式的主要内容,如果未能解决你的问题,请参考以下文章

Django CMS - 无法修改新添加网页的结构

Django CMS 登陆页面

如何在 django-cms 中使用表单?

如何转储 django-cms 相关内容以便与正在运行的实例一起迁移?

django-cms 和 jQuery

如何从 Django 模板中的页面迭代 cms 插件实例?