python – 如何在django admin change_list模板中获取对象
我想覆盖
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的对象的结果,以及附加原始底层对象的每个项目以供稍后在模板中使用. 正如您可能已经收集的那样,管理员应用程序通过各层紧密集成.更改其操作非常重要,需要更改和覆盖源的多个部分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |