【问题标题】:Django-cms, children variable in template, page navigation doesn't show in newer versionDjango-cms,模板中的子变量,页面导航在较新版本中不显示
【发布时间】:2020-01-03 21:58:33
【问题描述】:

我正在尝试使用 Django-cms 3.6.0 运行项目。它是使用 Django-cms 2.3.8 创建的,我正在尝试使用旧代码。在这个新版本中,带有子页面链接的菜单不会出现。 children 模板中的变量似乎不包含任何内容。
我希望它显示一个页面的 4 个子页面的链接。我已经在新版本 django-cms 的管理 UI 中手动添加了页面。
subbase.html:

{% extends "base.html" %}
{% load i18n %}
{% load menu_tags cms_tags %}
...
{% block left_menu %}
<nav id="lMenu">
 {% show_menu 1 1 0 1 "menu/sub_menu.html" %}
 {% block left_content %}{% endblock left_content %}
</nav>
{% endblock left_menu %}

sub_menu.html:

{% load menu_tags %}
<ul class="subMenu">
 {% for child in children %}
 <li><a href="{{ child.attr.redirect_url|default:child.get_absolute_url }}" title="{{ child.get_menu_title }}">{{ child.get_menu_title }}</a></li>
 {% endfor %}
</ul>

我已经使用manage.py shell 在数据库中检查了这些页面有子页面:

from cms.models.pagemodel import Page
pages = Page.object.all()
children = pages[2].get_descendant_pages()

现在,例如,调用 pages[2].get_menu_title(), children[0].get_menu_title() 返回预期的页面专有名称,如通过 UI 添加的那样。

我在文档中没有找到太多关于这个 children 变量的信息。这应该在 3.6 中仍然以这种方式工作吗?在模板中引用子页面的正确方法是什么?

【问题讨论】:

  • 1 1 0 1 是否对应于您如何构建树?如果您删除这些参数,它会显示孩子吗? children 上下文变量是正确的; docs.django-cms.org/en/release-3.6.x/topics/…
  • 是的,这对应于我的树。我发现语言设置有问题。

标签: django django-templates django-cms


【解决方案1】:

我发现我的语言设置有问题。带有子页面链接的菜单在我之后开始出现:

无法准确记住子菜单的哪一个固定问题。 也可能是 url 处理有问题,我使用了 urls.py 中的 django 应用程序 url 而不是 cms.urls。

【讨论】:

    猜你喜欢
    • 2020-12-14
    • 1970-01-01
    • 2019-09-03
    • 2019-12-10
    • 2013-09-26
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多