【发布时间】: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