Django Admin Templating

时间:2010-07-07 19:11:02

标签: python django django-admin django-templates

我正在学习django并建立自己的项目 我想将管理部分更改为我自己的界面,我已将子目录添加到模板名称“admin”。并开始更改base.html

问题是 -

  • 我想添加自己的css文件,我该怎么做?我的css文件位于我的MEDIA_ROOT目录中。我怎么能这样做?
  • 我看到很多模板标签,我在哪里可以看到管理部分可以使用哪些模板标签?
  • 有一个干净的管理模板,如Starkers for Wordpress
  • Yosy

    2 个答案:

    答案 0 :(得分:1)

    1)如果您的settings.py中的TEMPLATE_CONTEXT_PROCESSORS(默认情况下)中包含“django.core.context_processors.media”,则可以在<link>中将{{ MEDIA_URL }}/your_stylesheet.css添加到templates/admin/base.html },就像这样(我正在使用Django 1.2管理模板):

    ...
    <link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% load adminmedia %}{% admin_media_prefix %}css/base.css{% endblock %}" />
    <link rel="stylesheet" type="text/css" href="{{ MEDIA_URL }}/your_stylesheet.css" />
    ...
    

    2)如果你之前{%load%}编辑了它们,你可以在任何地方使用所有标签。有管理员特定的标签,可以在Django源here中找到 - 不幸的是我不知道任何关于它们的文档,所以看起来你必须阅读源代码。

    3)我没有听说过Django管理员这样的事情,但有一个名为Grappelli的项目可以改善Django管理员的外观和功能,提供稍微友好的模板作为副作用。

    答案 1 :(得分:1)

    对于那些困扰谷歌的人来说:

    1. This is a much better way of overriding things in the admin template. Probably the most DRY method I've come across in my years of Django-ing

      您应该注意静态文件(如css)不应存储在媒体文件夹中。您应该将它们放在静态文件夹中。您不希望将任何用户上载的内容存储在与静态文件相同的目录中。
    2. 引自@cji的回复:“你可以在任何地方使用所有标签,如果你之前已经{%load%}编过它们。有管理员特定的标签,可以在Django源here中找到 - 不幸的是我不知道有关它们的任何文档,所以看起来你必须阅读源代码。
    3. 我没有偶然发现我的旅行。但不幸的是,我的网站上的图片已经破了,所以我无法确定......