python – 如何在django admin change_list模板中获取对象

python – 如何在django admin change_list模板中获取对象,第1张

概述我想覆盖 django admin change_list页面,但我无法找到如何获取实际对象,以便我可以访问像object.name这样的属性 在模板中,他们有这个代码 < tr> {%for result in item%} {{item}} {%endfor%}< / tr> 我可以使用的实际对象在哪里 编辑: 看起来结果是行,而item是列.我想要像result.pk这样的东西 如果结果,这 我想覆盖 django admin change_List页面,但我无法找到如何获取实际对象,以便我可以访问像object.name这样的属性

在模板中,他们有这个代码

< tr> {%for result in item%} {{item}} {%endfor%}< / tr>

我可以使用的实际对象在哪里

编辑:

看起来结果是行,而item是列.我想要像result.pk这样的东西

如果结果,这将产生列表

https://github.com/django/django/blob/master/django/contrib/admin/templatetags/admin_list.py#L175

解决方法 提供给change_List.HTML的上下文包括对应于contrib.admin.vIEws.main.changelist对象的cl条目,该对象是包含结果列表的对象.

您可以像这样直接访问结果列表:

{% for object in cl.result_List %}{{ object.fIEld }}{% endfor %}

通过使用result_List模板标记,更改列表结果将作为change_List_results.HTML模板的一部分呈现. change_List_results.HTML模板在呈现模板时也具有cl上下文变量.

当Django模板在您的示例中迭代结果时,result是一个ResultList对象,其中包含预呈现的HTML,正在呈现的基础对象不可用.

要覆盖此级别的模板,您可能需要实现自己的result_List类型模板标记,该标记可以返回结果列表,其中基础对象作为属性附加到每个结果.

简而言之,您可能需要:

>根据Django的实现创建自己的result_List模板标记.让它返回结果上下文作为ResultList预呈现HTML的列表,让它返回包含能够呈现为HTML的对象的结果,以及附加原始底层对象的每个项目以供稍后在模板中使用.
>覆盖change_List.HTML模板以使用新标记而不是Django的result_List模板标记.
>覆盖change_List_results.HTML模板以利用模板标记中可用的额外信息,例如每个基础对象的存在.

正如您可能已经收集的那样,管理员应用程序通过各层紧密集成.更改其 *** 作非常重要,需要更改和覆盖源的多个部分.

总结

以上是内存溢出为你收集整理的python – 如何在django admin change_list模板中获取对象全部内容,希望文章能够帮你解决python – 如何在django admin change_list模板中获取对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1194650.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存