0

我正在使用 django-cms 设计一个网站,到目前为止,我必须创建一个带有菜单栏的基本主页,例如,About Us等,ProductsContact Us

django我已经完成了and的所有必要设置django-cms,激活了管理部分并且工作正常。

我创建了一个Home Page template包含 About Us, Products,Contact Us并创建了一个aboutus通过 django-cms调用的页面adminslug about-us

现在我已经给出了那个 slug about-us,它只是About Us菜单锚标记中的一个 url,所以当我单击该链接时,它工作正常并将我重定向到aboutus浏览器中的 url 为 url的页面http://localhost:8080/aboutus

但问题是,当我再次单击aboutus链接时,它会生成两次 url,就像http://localhost:8080/aboutus/aboutus我的意思是每次点击时,slugaboutus都会附加到 url。

以下是我的代码

设置.py

TEMPLATE_CONTEXT_PROCESSORS = (
     .......
    'cms.context_processors.media',
    'sekizai.context_processors.sekizai',
)
CMS_TEMPLATES = (
    ('home.html', gettext('Home')),
    ('aboutus.html', gettext("About Us")),
    ('management_team.html',gettext('Management Team')),
)
.....
....

网址.py

from django.conf.urls.defaults import *
from django.contrib import admin
from django.conf import settings

admin.autodiscover()

urlpatterns = patterns('',

     url(r'^admin/', include(admin.site.urls)),
     url(r'^', include('cms.urls')),
)

主页.html

{% load cms_tags sekizai_tags %}
{% load staticfiles %}
{% load staticfiles %}
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>{% block head %}{% endblock %}</title>
      {% render_block "css" %}
  </head>
  <body>
      {% cms_toolbar %}
        <div class="submenu">
            <a href="about-us">About Company Services</a><br />
            <a href="management-team">Our Management Team</a>
        </div>
        <a href="about-us" class="menu aboutus">About Us</a></div>
      {% render_block "js" %}
  </body>
</html>

所以上面是我的整体代码,其中home.html显示了一个带有如下菜单的主页(通过使用一些css样式)

   About Us
        About Company Services 
        Our Management Team

因此,当我单击链接 时,会立即About Us生成 url http://localhost:8000/about-us/,当我们单击About Company Services生成的 url 时会立即生成,http://localhost:8000/about-us/about-us然后http://localhost:8000/about-us/about-us/our-management-team/单击时会Our Management Team立即生成。所以 url 附加到前一个 url 而不是附加到domain name.

我使用 django-cms admin 中创建的模板创建了所有页面

   Page Name                slug

   About Us                 about-us
   About Company Services   about-us 
   Our Management Team      our-management-team 

那么上面的代码有什么问题,为什么 url 附加到以前的 url 而不是附加到域?

如何创建一个childs(About Company Services,Our Management Team )从 django-cms admin 到parent(About Us)

实际上我想在 page(About Company Services,Our Management Team )下创建两个页面About Us,我们如何在 django-cms admin 中实现这一点

谁能让我知道 django-cms 中菜单的概念,我已经尝试并阅读了文档django-cms many many many times但无法理解menus如此接近的概念SO

4

2 回答 2

3

如果这是您在管理部分 ( ) 中的页面布局/admin/cms/page

- Home (level=0)
    - About Us (level=1)
        - About Company Services (level=2)
            - Foo Bar (level=3)
        - Our Management Team (level=2)
    - Some Other Section (level=1)
        - Some Sub Section (level=2)
    - ...

当您打印时,{% show_menu A B C D %}您正在呈现一个ul菜单,其中 A、B、C 和 D 是指定菜单配置的数字。

A = Start
B = End
C = Inactive
D = Active

所以{% show_menu 1 2 0 100 %}

  • A=1表示从第 1 级开始导航,即排除Home第 0 级
  • B=2表示将导航渲染到第 2 级,即排除Foo Bar
  • C=0表示对于非活动轨迹,显示 0 级别。因此,如果我们当前在About Us页面上,我们将不会在下面的菜单中看到任何链接Some Other Section(因为这是一条不活跃的线索),但我们仍然会看到About Company...Out Management...(因为这是一条活跃的线索)
  • D=100意味着对于当前活动的轨迹,显示到 100 个级别(这就是我们看到上面提到的About Company...和的原因)Our Management

所以结果是:

- About Us (level=1)
    - About Company Services (level=2)
    - Our Management Team (level=2)
- Some Other Section (level=1)
于 2013-03-13T13:32:00.427 回答
1

使用 {% show_menu %} 模板标签来呈现菜单。请务必阅读相关文档。

于 2013-03-13T12:26:33.083 回答