django-cms的url设计

时间:2013-03-13 12:13:26

标签: python django url menu django-cms

我正在使用django-cms来设计网站,截至目前,我必须使用About UsProductsContact Us等菜单栏创建基本主页,

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

我创建了一个Home Page template,其中包含About UsProductsContact Us,并通过django-cms {{1}创建了一个名为aboutus的网页使用slug admin

现在我已经给了about-us那个slu about-us,它只是About Us菜单的锚标签中的一个url,所以当我点击链接时它工作正常并将我重定向到页面{{1将浏览器中的网址设为aboutus

但问题是,当我再次点击http://localhost:8080/aboutus链接时,它会生成两次类似于aboutus的网址,我的意思是每次点击,slu http://localhost:8080/aboutus/aboutus是附在网址上。

以下是我的代码

settings.py

aboutus

urls.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')),
)
.....
....

home.html的

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')),
)

以上是我的整体代码,其中{% 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> 显示带有如下菜单的主页 (通过使用一些CSS样式)

home.html

因此,当我点击链接 About Us About Company Services Our Management Team 时,网址生成为About Us,当我们点击http://localhost:8000/about-us/时,网址生成为About Company Services和{{1} }立即点击http://localhost:8000/about-us/about-us时。因此,网址会附加到上一个网址,而不是附加到http://localhost:8000/about-us/about-us/our-management-team/

我使用django-cms admin中创建的模板

创建了所有页面
Our Management Team

上面的代码中有什么问题,为什么网址会附加到以前的网址而不是附加到域名?

如何从django-cms管理员创建domain name Page Name slug About Us about-us About Company Services about-us Our Management Team our-management-team

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

任何人都可以让我知道django-cms中菜单的概念,我已经尝试并阅读了(About Company Services,Our Management Team )的文档,但无法理解About Us如此接近django-cms many many many times的概念

2 个答案:

答案 0 :(得分:3)

如果这是您在admin部分(/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&amp; D是指定菜单配置的数字。

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

所以{% show_menu 1 2 0 100 %}

  • A=1表示在级别1开始导航,即排除级别为0的Home
  • B=2表示将导航向下渲染到第2级,即排除Foo Bar
  • C=0表示对于非活动路径,显示0级别。因此,如果我们当前位于About Us页面,我们将看不到Some Other Section下方菜单中的任何链接(因为这是一条非活动状态),但我们仍会看到About Company...和{{ 1}}(因为这是一条活跃的小道)
  • Out Management...表示对于当前有效的跟踪,显示为100个级别(这就是我们看到上述D=100About Company...的原因)

结果是:

Our Management

答案 1 :(得分:1)

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