Установить тему для пинакса - PullRequest
2 голосов
/ 28 ноября 2011

Я хочу заменить стандартную тему 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.

Я не понимаю, что они имеют в виду. Я вижу STATICFILES_DIRS и TEMPLATE_LOADERS в файле settings.py, они означают, что я должен поместить каталог 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).

Так что я должен поместить extends "theme_base.html" внутри "site_base.html". И должны ли в блоке site_base.html быть включены оба блока: «нижний колонтитул» и «nav», если его раньше не было?

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

Так что на любых страницах, где я хочу использовать эту тему, у меня должны быть блоки "head_title" и "body", и они должны расширять "site_base.html". Если у меня есть «base.html», который уже расширяет «site_base.html», должен ли я расширяться еще раз?

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

Не уверен.

Пожалуйста, дайте мне несколько предложений, спасибо!

Ответы [ 2 ]

2 голосов
/ 17 апреля 2014

Я знаю. Документация Пинакса может свести с ума ... Думаю, в любом случае, будем благодарны.

Прежде всего, создайте 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.

0 голосов
/ 21 декабря 2011

Что такое файл требований здесь?

Это необязательная рекомендация.Если вы хотите узнать больше, вот статья, которую я написал некоторое время назад: http://dev.chocolatpistache.com/blog/2009/11/04/pinax-virtualenv-setuptools-pip-easy_install-and-requirementstxt/

Убедитесь, что в загрузчиках шаблонов и средствах поиска статических файлов есть каталоги приложений.Я не понимаю, что они имеют в виду.Я вижу STATICFILES_DIRS и TEMPLATE_LOADERS в файле settings.py

Ваш TEMPLATE_LOADERS имеет "django.template.loaders.app_directories.load_template_source".Это «загрузчик приложений для шаблонов».Вам нужно проверить STATICFILES_FINDERS.В любом случае эти настройки должны быть включены по умолчанию.

Добавление "apps.pinax-theme-bootstrap" в TEMPLATE_LOADERS совершенно неверно.Это должно сломать ваш сайт в какой-то момент.

Так что я должен поместить extends "theme_base.html" внутри "site_base.html".И должны ли в блоке site_base.html быть включены оба блока: «нижний колонтитул» и «nav», если его раньше не было?

Просто скопируйте theme_base.html в вашпроект / templates / site_base.html.сделать это проще для вас.

Ссылки о наследовании шаблонов:

https://docs.djangoproject.com/en/dev/topics/templates/#tags (раздел о "блоке и расширениях" http://dev.chocolatpistache.com/blog/2009/07/15/template-inheritance-explained/

Итакна любых страницах, которые я хочу использовать эту тему, я должен иметь блоки "head_title" и "body" и должен расширять "site_base.html". Если у меня есть "base.html", который уже расширяет "site_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 (а также многие вещи, которые нужны большинству проектов по умолчанию).

Терпение и настойчивость, мой друг, если ты хочешь рок-н-ролл, то долгий путь к вершине :))

...