2013-03-13 75 views
0

我使用Django-CMS设计一个网站,现在我不得不与菜单栏一样About UsProductsContact Us等创建一个基本的主页,URL设计在Django-CMS

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

我创建了一个Home Page template包含About UsProductsContact Us并通过Django的CMS admin与塞about-us创建了一个名为aboutus页面。

现在我已经考虑到塞about-us这不过是在为About Us菜单中的锚标记一个URL,所以当我点击链接它的做工精细,重定向我aboutus的页面在浏览器中为http://localhost:8080/aboutus的URL。

但问题是,当我在aboutus再次单击链接其生成的URL两次就是喜欢http://localhost:8080/aboutus/aboutus,我的意思是每一个点击,蛞蝓aboutus被追加到的URL。

下面是我的代码

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

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

home.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-ushttp://localhost:8000/about-us/about-us/our-management-team/,当点击Our Management Team时。因此,该网址会附加到之前的网址,而不会附加到domain name

我已经通过使用Django的CMS管理员创建的模板创建的所有页面作为

Page Name    slug 

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

所以,什么是错在上面的代码,为什么网址被追加到以前的网址,而不是追加到域?

如何创建从Django的CMS管理一个childs(About Company Services,Our Management Team)parent(About Us)

其实我想创建下About Us(About Company Services,Our Management Team)两页,我们如何能够在Django-CMS管理实现这一

任何人都可以请让我知道在Django-CMS菜单的概念,我曾尝试和阅读的django-cms many many many times的文档,但无法理解的menus概念如此接近SO

+0

你让你的问题很复杂。你对django-cms菜单系统有什么不了解? 'django-cms'中的菜单反映了管理员的页面布局。因此,如果您在一般的“关于页面”下嵌入了两个“公司服务”和“管理团队”页面,那么当您使用“{%show_menu ...%}”呈现菜单模板标记时,生成的HTML将镜像该页面布局。 – 2013-03-13 12:37:52

+0

例如{%show_menu 0 0%}什么是0和o在这里如果添加了另一个0? – 2013-03-13 12:55:26

+0

in {%show_menu 1 100 100 0%}这是什么意思?数字乱序时会发生什么? (实际上所有这些都在文档中提到,但无法用技术词完全..) – 2013-03-13 12:56:43

回答

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) 
+0

非常感谢这真的有帮助的解释...也意味着在我上面的HTML代码我粘贴在备用网址,没有必要声明标签完整的HTML代码? – 2013-03-13 13:58:30

+0

这是在哪里记录?我是否找不到文档? – 2014-10-02 00:41:18

1

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

+0

实际上,正如我上面提到的,我已经阅读了文档很多次,但我无法了解最终接近的用法所以,请你将菜单标记示例代码添加到我的上面的html代码中,以便我可以实际学习它,已经因为这个而浪费了2天...... – 2013-03-13 12:30:40

+0

在admin(cms - > pages)重新排序(拖放)页面,使它们成为about_us的子项。 – digi604 2013-03-13 12:33:53

+0

然后使用下面的代码:

digi604 2013-03-13 12:34:28