7

django-cms 总是使用最顶层的页面作为开始/登陆页面。我现在想要一个看起来像foo-home-barhome的导航作为登录页面。

一种方法是在 / 添加一个重定向到 /home 的虚拟页面,但这对我来说似乎有点粗糙。有没有更好的解决方案?我不介意更改 cms 本身的代码。

4

3 回答 3

7

最简单的方法是使用 django 的重定向通用视图,而不是创建重定向页面。

将其设置在您的顶级 urls.py

url(r'^$', RedirectView.as_view(url='/home/')),

当然from django.views.generic.base import RedirectView,在开头添加导入,你应该已经准备好了。

'^$'只在任何你想要的地方捕获根 url 和 RedirectView 重定向。我有点不确定自己是否使用它,但是当你访问他们的网站时,我看到很多主要网站都在做重定向......)

于 2012-06-17T23:57:25.647 回答
1

您创建的第一个页面似乎是主页,只需根据需要添加其他根页面并在其上启用导航。这就是我所做的。

我们的第一页是测试页面,然后是一些子页面。在管理页面中,您可以单击并拖动页面以更改子/父顺序。我们将 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。

主页上有一个其他页面没有的图标,表示我猜的根页面。

于 2012-05-30T04:28:37.910 回答
0

cms_page 表中tree_id 编号最小的页面是主页。这通常是您创建的第一个页面。如果您想将不同的页面设为您的主页,您可以手动更改数据库中的 tree_id 值(但不幸的是,不能使用管理员。)

于 2013-11-12T20:08:46.090 回答