【问题标题】:Install theme for pinax为 pinax 安装主题
【发布时间】:2011-11-28 02:33:20
【问题描述】:

我想用这个主题替换 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 目录放在应用程序文件夹中,并包含指向该目录的链接。像这样:

    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).

所以我必须将扩展“theme_base.html”放在“site_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.

不确定。

请给我一些建议,谢谢!

【问题讨论】:

  • 我已经使用 setup.py install 命令安装了它。

标签: django pinax


【解决方案1】:

我知道。 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 %}

那么……

网址名称“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 %}

如果您没有将任何网址标记为home,您认为它将如何解决url "home"

这也回答了有关站点名称的问题。您必须安装 Django 站点,然后将定义 SITE_NAME

【讨论】:

    【解决方案2】:

    这里的需求文件是什么?

    这是一个可选的最佳实践。如果你想了解更多,这里是我前段时间写的一篇文章:http://dev.chocolatpistache.com/blog/2009/11/04/pinax-virtualenv-setuptools-pip-easy_install-and-requirementstxt/

    确保模板加载器和静态文件查找器都包含应用目录。我不明白他们的意思。我在文件 settings.py 中看到 STATICFILES_DIRS 和 TEMPLATE_LOADERS

    您的 TEMPLATE_LOADERS 具有“django.template.loaders.app_directories.load_template_source”。这是“模板的应用程序加载器”。您需要检查 STATICFILES_FINDERS。无论如何,这些设置应该默认开启。

    将“apps.pinax-theme-bootstrap”添加到 TEMPLATE_LOADERS 是完全错误的。它应该会在某个时候破坏您的网站。

    所以我必须将扩展“theme_base.html”放在“site_base.html”中。如果之前没有的话,是否应该在“site_base.html”中同时包含“footer”和“nav”块?

    只需将 theme_base.html 复制到 yourproject/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”。如果我有一个已经扩展了“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(以及大多数项目默认需要的许多东西)。

    耐心和毅力,我的朋友,如果你想摇滚,那还有很长的路要走:)

    【讨论】:

      猜你喜欢
      • 2020-10-31
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多