Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django admin-自定义更改表单.html和第三方应用程序自定义更改表单_Django_Templates - Fatal编程技术网

Django admin-自定义更改表单.html和第三方应用程序自定义更改表单

Django admin-自定义更改表单.html和第三方应用程序自定义更改表单,django,templates,Django,Templates,我目前正在自定义模型的管理模板,但ModelAdmin继承了第三方模型,如django importexport或django modelclone,我遇到了一个问题 这两个应用程序都带有change\u list.html或change\u form.html。它们分别扩展了admin/change\u list.html或admin/change\u form.html 因此,我的模型管理员如下所示: class MyModelAdmin(SuitObjectActionsMixin, Im

我目前正在自定义模型的管理模板,但ModelAdmin继承了第三方模型,如django importexport或django modelclone,我遇到了一个问题

这两个应用程序都带有
change\u list.html
change\u form.html
。它们分别扩展了
admin/change\u list.html
admin/change\u form.html

因此,我的模型管理员如下所示:

class MyModelAdmin(SuitObjectActionsMixin, ImportExportModelAdmin, ClonableModelAdmin):
我试图通过将文件
change\u form.html
添加到
/templates/myapp/mymodel/
中来定制我的ModelAdmin。我知道这应该像其他管理员一样,不会从任何第三方应用程序继承

使用调试工具栏,似乎使用的模板是扩展标准
change\u form.html
django modelclone
模板,而不是我创建的模板

似乎第三方应用程序模板仅通过扩展标准模板就可以覆盖任何“本地”自定义模板


有没有干净的方法可以解决此问题?

您可以在ModelAdmin类中指定更改表单模板和更改列表模板:

class MyModelAdmin(A, B, C):
    change_form_template = 'path/to/my_change_form.html'
    change_list_template = 'path/to/my_change_list.html'

在类似的情况下,这一点也适用于我。

如果你想完全覆盖模板,那就好了,但在我的情况下就不行了。例如,
django modelclone
只需在其
change\u form.html
中添加一个操作按钮,我仍然希望在我的自定义模板中使用该按钮。如果您指的是管理操作,那么如果您放置自己的模板,您将拥有该按钮。如果它更复杂,您可以复制modelclone或其他电池的html模板并对其进行自定义。例如,我是用Grapelli做的。忘了回复对不起。。。最后,按照您的建议,将第三方应用程序的HTML直接添加到模板中