2

Pinax のデフォルト テーマを次のテーマに置き換えたい: https://github.com/pinax/pinax-theme-bootstrapしかし、クイック スタートの説明がよくわかりません。ヒントを教えてください。

    Include "pinax-theme-bootstrap" in your requirements file and "pinax_theme_bootstrap" in your INSTALLED APPS.

ここの要件ファイルは何ですか?

    Make sure both template loaders and staticfiles finders includes app directories.

意味がわかりません。ファイル settings.py に STATICFILES_DIRS と TEMPLATE_LOADERS が表示されます。これらは、pinax_theme_bootstrap ディレクトリを apps フォルダー内に配置し、このディレクトリへのリンクを含める必要があることを意味します。このような:

    STATICFILES_DIRS = [
          os.path.join(PROJECT_ROOT, "media"),
          os.path.join(PINAX_ROOT, "media", PINAX_THEME),
          os.path.join(PINAX_ROOT, "apps", pinax-theme-bootstrap),
                       ]
    TEMPLATE_LOADERS = [
          "django.template.loaders.filesystem.load_template_source",
          "django.template.loaders.app_directories.load_template_source",
          "apps.pinax-theme-bootstrap",
                       ]


    Site name comes from Sites fixture.

それらの意味がまったくわかりません。

    Your "site_base.html" should extend "theme_base.html" and should provide "footer" and "nav" blocks (the latter should just be a ul of li of a links).

したがって、「site_base.html」内に「theme_base.html」を拡張する必要があります。また、「site_base.html」内に「footer」と「nav」の両方のブロックを含める必要がありますか?

    Your pages should have blocks "head_title" and "body" and should extend "site_base.html".

したがって、このテーマを使用したいページでは、「head_title」と「body」のブロックが必要で、「site_base.html」を拡張する必要があります。「site_base.html」を既に拡張している「base.html」がある場合、もう一度拡張する必要がありますか?

    The url name "home" should be defined as the homepage.

わからない。

いくつかの提案をお願いします、ありがとう!

4

2 に答える 2

2

知っている。Pinax のドキュメンテーションは人を狂わせる可能性があります...とにかく感謝しましょう。

まず、作成しますtemplates/site_base.html。例:

{% extends "theme_bootstrap/base.html" %}
{% block nav %}
<ul class="nav navbar-nav navbar-left">
<li><a href="#">Link 1</a>
<li><a href="#">Link 2</a>
</ul>

{% endblock %}
{%  block footer %}

        <div class="container">
            <hr>
            <footer>
                <p>&copy; Myself, 2014</p>
            </footer>
        </div>

{% endblock %}

それで...

URL 名「home」は、ホームページとして定義する必要があります。

これは、urls.pyあなたのホームページに のラベルを付ける必要があることを意味しますname='home'。例えば、

url(r'^$', 'app.views.index', name='home'),

そうしないと、次のようなエラーが発生します

NoReverseMatch at /account/signup/

Reverse for 'home' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

実際、base.html次の行があります。

{% block site_brand %}<a class="navbar-brand" href="{% url "home" %}">{{ SITE_NAME }}</a>{% endblock %}

url "home"どのURL にも としてラベルを付けていない場合、どのように解決されると思いますhomeか?

これは、サイト名に関する質問にも答えます。Django サイトをインストールする必要があり、その後SITE_NAME定義されます。

于 2014-04-17T03:33:16.187 に答える
0

ここの要件ファイルは何ですか?

これはオプションのベスト プラクティスです。詳細については、私が以前に書いた記事をご覧ください

テンプレート ローダーと staticfiles finder の両方に app ディレクトリが含まれていることを確認してください。意味がわかりません。ファイル settings.py に STATICFILES_DIRS と TEMPLATE_LOADERS が表示されます

TEMPLATE_LOADERS には「django.template.loaders.app_directories.load_template_source」があります。これが「テンプレート用アプリローダー」です。STATICFILES_FINDERS を確認する必要があります。とにかく、これらの設定はデフォルトでオンになっているはずです。

「apps.pinax-theme-bootstrap」を TEMPLATE_LOADERS に追加するのは明らかに間違っています。ある時点でサイトが壊れるはずです。

したがって、「site_base.html」内に「theme_base.html」を拡張する必要があります。また、「site_base.html」内に「footer」と「nav」の両方のブロックを含める必要がありますか?

yourproject/templates/site_base.html に theme_base.html をコピーするだけで簡単になります。

テンプレートの継承に関するリンク:

https://docs.djangoproject.com/en/dev/topics/templates/#tags (「ブロックと拡張」に関するセクション http://dev.chocolatpistache.com/blog/2009/07/15/template-inheritance-説明/

したがって、このテーマを使用したいページでは、「head_title」と「body」のブロックが必要で、「site_base.html」を拡張する必要があります。「site_base.html」を既に拡張している「base.html」がある場合、もう一度拡張する必要がありますか?

テンプレート「article_detail.html」は次のようになります。

  {% extends 'site_base.html' %}{# this is your copy of theme_base.html #}

  {% block head_title %}{{ article.title }}{% endblock %}

  {% block body %}
  <h1>{{ article.title }}</h1>
  <p>{{ article.body }}</p>
  {% endblock %}

私の推奨事項: Pinax をインストールし、デフォルトで pinax-theme-bootstrap を持つスターター プロジェクトを使用します (また、ほとんどのプロジェクトがデフォルトで必要とする多くのもの)。

友よ、忍耐と忍耐が必要です。ロックンロールをしたいのなら、頂点への道は遠いです :)

于 2011-12-21T16:15:13.373 に答える