我想将页面顶部的菜单项重定向到我正在写的指向他们的孩子的顶部菜单项,如果他们有任何。例如。这个网站有一个关于顶级的网站,下面有几个CMS网页。当用户点击左右时,我想在顶层菜单下显示第一个子页面。django-cms将顶级菜单重定向到第一个孩子
我可以像下面这样做,但感觉不对。我知道我可以做一个静态重定向,但我不想这样做,因为第一个孩子可能会改变(毕竟它是一个CMS系统),我不希望输入数据的人进入CMS必须管理重定向。所以我更喜欢下面的配置重定向。
这是一个相当普遍的要求,有没有这样做的标准方法?我想我可以用navigation modifier做到这一点,所以我可能会尝试下一个路线。
<div style="display:none;">{% show_menu 0 1 1 %}</div>
<div id="topmenu">
<ul>
{% for child in children %}
<li>
{% if child.children %}
<a href="{{child.children.0.get_absolute_url}}">
{% else %}
<a href="{{child.get_absolute_url}}">
{% endif %}
{{ child.get_menu_title }}
</a>
</li>
{% endfor %}
</ul>
</div>
关于上述问题,我需要在那里有show_menu,否则数据不存在我的自定义菜单。有没有什么办法可以解决这个问题?
我最不喜欢上述内容的是,/ about /页仍处于活动状态。如果有人在那里浏览,这不是世界上最糟糕的事情,他们会得到一个空白的页面,但我宁愿这不会发生。我想如果我写了一个导航扩展,那么同样的缺点就在那里。我想我需要一个编程重定向来重定向到第一个孩子,如果该网页被击中。思考?我可以用模板逻辑来做,但这看起来很疯狂。
有你发现导航修饰符的解决方案?至于django-cms 3.0,似乎还没有好的解决方案,除了我下面提出的小小的黑客... – benzkji 2014-10-14 13:48:31
@benzkji不是真的,我们通常只是在顶层页面上设置重定向,我认为你的小黑客是与任何解决方案 – 2014-10-15 07:44:56
一样好。每当第一个孩子的网址发生变化时,我的黑客就可以让你免于重定向值。根据情况,这可能是一个真正的好处。 – benzkji 2014-10-16 07:49:48