当第三个应用程序覆盖它时覆盖django change_form.html模板

时间:2017-12-07 22:08:11

标签: python django templates django-admin

我正在尝试仅针对一个模型覆盖change_form.html,因此我按照the django documentation中的说明执行并创建了/templates/my_app_name/my_model_name/change_form.html

问题是,它无效,我没有看到我添加到change_form模板的额外功能。我正在使用django_guardian,它也会覆盖相同的模板,因此我的假设是这导致了问题。值得一提的是,在将模板放入my_app_name/my_model_name/文件夹之前,两个模板的功能在管理界面中都可见。

有没有办法只将这个应用于1个模型?

2 个答案:

答案 0 :(得分:0)

0.0.0.20-SNAPSHOT更改GuardedModelAdmin以使用django-guardian中的模板。尝试在模型管理类中更改它:

change_form_template

答案 1 :(得分:0)

您应该选中this answer

您可以指定要在模板中扩展的模板。 因此,您要扩展第三个应用程序的模板,从而扩展djando admin的模板。

示例:

admin.py

class MyModel(ThirdAppModelAdmin):
    change_form_template = 'my_app_name/templates/change_form.html'

my_app_name / templates / change_form.html

{% extends "thirdapp/templates/change_form.html" %}
{% block thatYouNeed %}
    {{ block.super }}
    Your content here
{% endblock %}

好吧,至少这是我设法做到的。