【发布时间】:2017-02-19 06:03:55
【问题描述】:
Django 1.6.11
应用结构如下:
my_project/
|-- new_app/
|-- templates/
在我的配置中:
TEMPLATE_ROOT = os.path.join(BASE_ROOT, 'templates/')
TEMPLATE_DIRS = (
TEMPLATE_ROOT,
)
INSTALLED_APPS = (
'django.contrib.admin',
...
'new_app',
)
我也尝试在contrib.admin 之前列出new_app,但这没有帮助。
当我将venv/django/contrib/admin/templates/admin/change_list.html 复制到我的/templates/admin/new_app/change_list.html 时,我没有看到我的自定义设置。
my_project/
|-- new_app/
|-- templates/
|-- admin/
|-- new_app/
|-- change_list.html
当我将 change_list.html 上移一级使其位于管理路径下时,更改显示得很好:
my_project/
|-- new_app/
|-- templates/
|-- admin/
|-- change_list.html
|-- new_app/ (now an empty folder)
...但这当然意味着我的更改将影响每个管理页面,而不仅仅是我尝试修改的应用程序。
我已将此添加到 admin.py 中应用的唯一模型中:
class MyModelAdmin(reversion.VersionAdmin):
change_list_template = 'admin/new_app/change_list.html'
...这给了我一些我需要的东西,但我还需要 change_list_results.html 并且没有 ModelAdmin 覆盖。
我正在遵循第 31 页第 2.4.8 节中 readthedocs 的文档指南,但我似乎没有任何运气。
【问题讨论】:
-
我知道这是一个非常古老的问题。但我在 Django 2.1.1 上遇到了几乎完全相同的问题。您是否曾经解决过这个问题,因为以下解决方案都不适合我。我也在尝试对位于单独项目中的特定模型执行此操作。我的文件夹结构看起来很相似: my_project/ |-- api/ |-- frontend/ |-- templates/ |-- admin/ |-- api/ |-- specificmodel/ |-- change_list.html
-
嗯,我明白了为什么它不起作用......也许为什么它不起作用。您正在扩展 reversion.VersionAdmin,这可能会覆盖您的模板更改。对我来说,这是因为我正在扩展 ImportExportModelAdmin。话虽如此,我仍然不确定如何解决这个问题。
标签: django django-models django-admin