django admin list_filter"或"条件

FSp*_*FSp 7 python django filter django-admin django-admin-filters

对不起,如果之前已经回答过这个问题,但我做了很多谷歌搜索没有成功.

我知道如何list_filter在管理视图中创建自定义(例如子类化SimpleFilter).

我真正想要的是一种方法(在管理列表视图中)"检查"在OR公式中组合它们的不同过滤器.

举个例子,假设你有:

# models.py
class Foo(models.Model):
    foobar = ...
    foofie = ...
...

# admin.py
class FooAdmin(admin.ModelAdmin):
    list_filter = ( "foobar", "foofie" )
...
Run Code Online (Sandbox Code Playgroud)

FooAdmin我生成的管理列表视图中,我可以选择按foobar或按过滤记录foofie.有没有办法通过公式对其进行过滤:foobar = X OR foofie = Y,其中XY是两个值foobar,并foofie能承担?

它甚至可能吗?

我知道在django管理员视图中并非一切皆有可能,但这似乎是一个非常常见的请求,我想知道我是否错过理解或阅读的东西.

此外,欢迎使用第三方应用程序.谢谢 :)

Mit*_*ril 5

我刚刚找到了一个第三方应用程序,它是django-advanced-filters,可能符合您的要求。

它有:

或字段

OR 是添加到每个规则的可用字段的附加字段。

它允许使用 OR 语句构建查询。您可以通过创建一个“空”规则来使用它,并在此字段“介于”一组 1 个或多个规则之间。

我已经进行了测试,添加一个OR field就可以了。这是截图: 在此输入图像描述