django-cms 总是使用最顶层的页面作为开始/登陆页面。我现在想要一个看起来像foo-home-bar和home的导航作为登录页面。
一种方法是在 / 添加一个重定向到 /home 的虚拟页面,但这对我来说似乎有点粗糙。有没有更好的解决方案?我不介意更改 cms 本身的代码。
django-cms 总是使用最顶层的页面作为开始/登陆页面。我现在想要一个看起来像foo-home-bar和home的导航作为登录页面。
一种方法是在 / 添加一个重定向到 /home 的虚拟页面,但这对我来说似乎有点粗糙。有没有更好的解决方案?我不介意更改 cms 本身的代码。
最简单的方法是使用 django 的重定向通用视图,而不是创建重定向页面。
将其设置在您的顶级 urls.py
url(r'^$', RedirectView.as_view(url='/home/')),
当然from django.views.generic.base import RedirectView
,在开头添加导入,你应该已经准备好了。
('^$'
只在任何你想要的地方捕获根 url 和 RedirectView 重定向。我有点不确定自己是否使用它,但是当你访问他们的网站时,我看到很多主要网站都在做重定向......)
您创建的第一个页面似乎是主页,只需根据需要添加其他根页面并在其上启用导航。这就是我所做的。
我们的第一页是测试页面,然后是一些子页面。在管理页面中,您可以单击并拖动页面以更改子/父顺序。我们将 test 重命名为 home 并将子页面转移到另一个根页面。
您还可以通过在 menu/menu.html 中创建模板来覆盖默认菜单,在那里您可以通过添加一些 if 语句来覆盖顺序。您还可以在 base.html 中对其进行硬编码,其菜单如下:
<ul id=menu>
<li><a href="/foo/>foo></a></li>
<li><a href="/">Home</a></li>
{% show_menu %}
<ul>
并且只在导航中有 bar 和您想要的其他页面,而不是 foo 或 home。
主页上有一个其他页面没有的图标,表示我猜的根页面。
cms_page 表中tree_id 编号最小的页面是主页。这通常是您创建的第一个页面。如果您想将不同的页面设为您的主页,您可以手动更改数据库中的 tree_id 值(但不幸的是,不能使用管理员。)