【问题标题】:Django Admin TemplatingDjango 管理员模板
【发布时间】:2011-03-12 23:57:34
【问题描述】:

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

问题是-

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

    【问题讨论】:

      标签: python django django-admin django-templates


      【解决方案1】:

      1)如果“django.core.context_processors.media”包含在你的settings.py中的TEMPLATE_CONTEXT_PROCESSORS(默认情况下)中,你可以在templates/admin/base.html中将<link>添加到{{ MEDIA_URL }}/your_stylesheet.css,就像这样(我'正在使用 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%}ed 他们。有一些特定于管理员的标签,可以在 Django 源代码here 中找到 - 不幸的是,我不知道有任何关于它们的文档,所以您似乎必须阅读源代码。

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

      【讨论】:

      • 非常感谢,一切都已修复 ^_^ 我没有 TEMPLATE_CONTEXT_PROCESSORS,所以我手动将它添加到我的代码中。
      • 用更新的和干燥友好的东西更新了你的答案
      【解决方案2】:

      对于谷歌的绊脚石:

      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%} ed 它们。有管理员特定标签,可以在 Django 源代码here 中找到 - 不幸的是我'我不知道有关它们的任何文档,因此您似乎必须阅读源代码。
      3. 我在旅途中没有偶然发现任何东西。但不幸的是,您网站上的图片对我来说是损坏的,所以我不能确定...

      【讨论】:

        猜你喜欢
        • 2016-03-01
        • 2011-09-28
        • 2011-04-16
        • 2021-12-11
        • 1970-01-01
        • 2011-07-26
        • 2023-03-23
        • 2013-12-06
        • 2022-10-14
        相关资源
        最近更新 更多