2013-03-13 68 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