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

Python 如何在django中修改管理模板,python,django,Python,Django,我使用django的默认管理员作为管理员站点,并创建了一个名为“project”的应用程序 然后在项目变更表单中,我想显示和动态图像,我计划使用google API绘制一些图表,因此我必须将变更html表单添加到html文件中,如下所示: 因此,我的问题是,我如何修改django的默认模板用于此页面,我无法在模板/文件夹中找到表单,此页面是否命名为“change_form”?“更改列表”?或者其他一些名字。如果是这样,我如何只更改应用程序“Project”的表单,因为我可能会创建一些与“Pr

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

然后在项目变更表单中,我想显示和动态图像,我计划使用google API绘制一些图表,因此我必须将变更html表单添加到html文件中,如下所示:


因此,我的问题是,我如何修改django的默认模板用于此页面,我无法在模板/文件夹中找到表单,此页面是否命名为“change_form”?“更改列表”?或者其他一些名字。如果是这样,我如何只更改应用程序“Project”的表单,因为我可能会创建一些与“Project”相同级别的其他应用程序。

您需要一个有效的静态文件位置

然后在静态文件目录中放置一个管理目录

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

Root
  yourapp
     static
        admin
           yourapp
               file_to_overwrite
找到你的Django文件。然后转到: contrib/admin/templates/admin

在OSX上,这将是:

/Library/Python/2.7/site packages/django/contrib/admin/templates/admin

如上所述,将要覆盖的文件复制到应用程序目录

编辑:

如果要为单个应用更改单个表单:

例如:

Root
  yourapp
     static
        admin
           yourapp
               modelname
                   change_form.html
{% 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 %}

只有模型“modelname”会受到此html文件的影响。

按照文档建议,一个很好的方法是使用@Rickard Zachrisson answer,而不是复制它,而是使用“extends”块和import super

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

以下是插入JS时的建议方式,例如:

Root
  yourapp
     static
        admin
           yourapp
               modelname
                   change_form.html
{% 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 %}
{%extends'admin/change\u form.html%}
{%load static%}
{%block admin\u change\u form\u document\u ready%}
{{block.super}}
{%endblock%}

我犯了一个错误,“project”只是我的应用程序“ticket”的一个模型,我想更改“project”的格式这些文件会随着django的升级而更改,因此请参阅下面的答案以了解更好的方法