如何在django中修改管理员模板

时间:2012-12-10 13:02:51

标签: python django

我使用django的管理站点的默认管理员,我创建了一个名为“project”的应用程序 enter image description here

然后在项目更改表单中,我想要显示和动态图像,我打算使用google API绘制一些图表,所以我必须更改html表单以在html文件中添加如下所示:

enter image description here

所以我的问题是如何修改django这个页面的默认模板,我找不到模板/文件夹中的表单,这个页面名为“change_form”吗? “更改列表”?或其他一些名字。如果是这样,我如何只更改应用程序“项目”的表单,因为我可能会创建一些与“项目”相同级别的其他应用程序

2 个答案:

答案 0 :(得分:1)

你需要一个有效的静态文件的地方。

然后将管理目录放在该静态文件目录中。

然后将您的addname添加为如下目录:

Root
  yourapp
     static
        admin
           yourapp
               file_to_overwrite

找到你的Django文件。然后去: 的的contrib /管理/模板/管理员

在OSX上,这将是:

<强> /Library/Python/2.7/site-packages/django/contrib/admin/templates/admin

将要覆盖的文件复制到上面的yourapp目录。

修改

如果您想更改单个应用的单个表单:

例如:

Root
  yourapp
     static
        admin
           yourapp
               modelname
                   change_form.html

此html文件只会影响模型“modelname”。

答案 1 :(得分:0)

正如文档建议的那样,这样做的好方法是使用@Rickard Zachrisson的答案,但不是复制它而是使用&#34; extends&#34;阻止并导入超级。

这应该是一种更好的方法,因为您不是直接覆盖管理模板而是继承它们。

这是docs建议在插入JS时的建议:

{% extends 'admin/change_form.html' %}
{% load static %}

{% block admin_change_form_document_ready %}
{{ block.super }}
<script type="text/javascript" src="{% static 'app/formset_handlers.js' %}"></script>
{% endblock %}