gpt4 book ai didi

Django 管理,基于 bool 可调用的列表过滤器

转载 作者:行者123 更新时间:2023-12-02 11:50:10 27 4
gpt4 key购买 nike

在模型管理对象上,我有一个可调用函数,它返回 True 或 False。我希望能够使用此可调用对象来过滤列表中显示的内容(即 list_filter)。但是,下面的代码不起作用,因为您只能在字段上使用 list_filter:

...

class FooAdmin(admin.ModelAdmin):
...
list_filter['bar']
def bar(self, obj):
x = ... #something boolean
return x
...


有没有办法使用 True/False 可调用来过滤管理中的列表?或者如果您想要此功能,是否必须对数据进行非规范化?

我注意到在开发文档中,现在可以这样做:https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter

但是在 1.3 文档(我正在使用的 Django 版本)中它没有提到这一点:https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#django.contrib.admin.ModelAdmin.list_filter所以我假设我无法在我的项目中使用新功能:-(

最佳答案

如果您能以某种方式用 ORM 双下划线查找路径来表达 bar 函数的操作,那么您也许能够在 Django 1.3 中创建 FilterSpec

参见django.contrib.admin.filterspecs

这些类负责生成过滤器选择列表并为 url 准备查询字符串值等。据我所知,它们通过提供管理代码其他部分使用的 field_path 属性来工作过滤更改列表查询集。

有关自定义 FilterSpec 的示例,请参阅:
http://djangosnippets.org/snippets/2644/

关于Django 管理,基于 bool 可调用的列表过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404410/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com