【问题标题】:Changing django admin's change_list.html更改 django 管理员的 change_list.html
【发布时间】:2020-03-15 05:16:11
【问题描述】:

我想自定义 django 管理员,因此我将粘贴的 change_list.html 从 django 管理员复制到 templates/admin/section4/section4/change_list.html 下的项目中

现在我有视图并且我写了另一个模板:total_review_count.html 我扩展了change_list.html

查看中:change_list_template = 'admin/section4/section4/total_review_count.html'

代码:

{% extends "admin/change_list.html" %}
{% load i18n admin_urls %}
{% block result_list %}
<footer style="color:blue;"> <p >The total review upto date: {{ total_review_upto_date}}<br> 
</p>
<p>The total review to be updated: {{ total_review_tobe_updated}}<br></p>
<p>Total review to be added : {{ total_review_tobe_added }}</p>
</footer>

{% endblock %}

但是这样做我会覆盖所有其他以前的东西,即 django admin 默认提供的模型列表,并且只获取此模板中的模型列表。这是覆盖change_list.html 的正确方法吗?我如何获得以前的东西?

【问题讨论】:

    标签: python django django-templates django-admin


    【解决方案1】:

    您必须像这样在项目路径中创建一个目录:myproject/templates/admin(如果这是您在settings.py 中的 DIRS 模板选项中指定的模板设置)并创建一个新的此目录中名为 change_list.html 的文件。然后 Django 将使用它而不是默认的。

    此外,您还可以使用这个新的change_list.html 模板进行扩展。

    有关覆盖和替换默认管理和注册模板的更多参考,另请参阅:https://docs.djangoproject.com/en/2.2/ref/contrib/admin/ -> 搜索“覆盖管理模板”

    【讨论】:

    • 这就是我所做的。但我也想要以前的内容,即默认提供的内容。
    • 您的视图应该链接到 total_review_count.html。如果是这样,您需要在 {% extends XYZ.html %} 中更改 changes_list.html 的 url 链接。现在浏览器不会加载以前的内容,因为它被错误地链接到你提到的路径。相应地将 /section4/section4 添加到扩展标签并删除视图中的 url 分配
    • 我不明白你在说你的视图应该链接到total_review_count.html。你又说删除你视图中的url分配
    • 我想获取 django admin 提供的模型字段以及上面 html 文件中自定义的字段。
    最近更新 更多