0

私は django-cms を使用してサイトをデザインしていますが、今のところ、などAbout Usのメニューバーを備えた基本的なホームページを作成する必要がありました.ProductsContact Us

と の必要な設定をすべて行いdjangodjango-cms管理セクションをアクティブにして、完全に機能しました。

Home Page templateを含む About Usを作成しProducts、slug を使用して django-cms を介してContact Us呼び出されるページを作成しました。aboutusadminabout-us

about-us今、私はメニューのアンカータグのURLに過ぎないスラッグを与えたAbout Usので、リンクをクリックすると正常に動作aboutusし、ブラウザのURLがhttp://localhost:8080/aboutus.

aboutusしかし問題は、リンクをもう一度クリックすると、URLが2回生成されるということです。つまりhttp://localhost:8080/aboutus/aboutus、クリックするたびにスラッグaboutusが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')),
)
.....
....

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

したがって、リンク をクリックすると、URL生成が行われ、すぐにURL生成をクリックするとすぐにAbout Usクリックされます。そのため、URL は に追加するのではなく、前の URL に追加されます。http://localhost:8000/about-us/About Company Serviceshttp://localhost:8000/about-us/about-ushttp://localhost:8000/about-us/about-us/our-management-team/Our Management Teamdomain name

django-cms admin から作成したテンプレートを使用して、すべてのページを作成しました。

   Page Name                slug

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

では、上記のコードのどこが間違っているのでしょうか。ドメインに追加するのではなく、以前の URL に URL を追加するのはなぜですか?

django childs(About Company Services,Our Management Team )-cms 管理者からparent(About Us)

(About Company Services,Our Management Team )実際には、 page の下に 2 つのページを作成したいのですがAbout Us、django-cms admin でこれを実現するにはどうすればよいですか

誰でもdjango-cmsのメニューの概念を教えてください。ドキュメントを読んでみましたが、そのようなアプローチdjango-cms many many many timesの概念を理解できませんmenusSO

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=100About Company...これは、現在アクティブなトレイルについて、100レベルまで表示することを意味します(これが、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 に答える