【问题标题】:Django admin return query results to my change_list templateDjango 管理员将查询结果返回到我的 change_list 模板
【发布时间】:2018-10-05 09:23:02
【问题描述】:

在我的 django 项目中,我会在我的个性化 change_list.html 模板中显示我的 ORM 查询的结果。 我这样做: 在 admin.py 中:

class temp_libraryAdmin(admin.ModelAdmin):

    list_filter = ('main_id__descr', 'l_type')


    def change_list(self, request, extra_context=None):

        #Here  we'll write ORM query, now test dict
        extra_context = {
            'cc': '123',
        }

        return super(temp_libraryAdmin, self).change_list(request, extra_context=extra_context)

好吧,现在在我的 change_list 页面的页脚块中:

{% block footer %}
<div id="footer-main">
    <p>FOOTERR</p>
    {% for lf in extra_context %}{{ lf.cc }}{% endfor %}
</div>
{% endblock %}

但我的页面上没有显示任何内容。

如何在我的管理页面中显示来自查询的数据?

提前致谢

【问题讨论】:

  • 你在课堂上重新定义了模板吗? change_list_template = 'template.html'
  • 我的 change_list 模板已经是我的 template/admin/app/model 路径中的 change_list.html

标签: django orm django-admin


【解决方案1】:

我相信您正在尝试覆盖 modeladmin 的 changelist_view 功能。 现在检查它的源代码,额外的上下文与上下文字典合并为:

context.update(extra_context or {})

然后将此上下文传递给模板。因此,在您的情况下,您可以直接检查变量是否存在,例如:

extra_context = {
        'some_variable': '123',
    }

然后在模板中检查为:

{% if some_variable %}

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2011-07-26
    • 1970-01-01
    • 2011-03-12
    • 2014-06-18
    • 2021-08-18
    • 1970-01-01
    • 2019-07-06
    • 2017-08-16
    • 2011-08-10
    相关资源
    最近更新 更多