Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django suit管理过滤器-覆盖查找的最简单方法_Django_Filter_Admin - Fatal编程技术网

django suit管理过滤器-覆盖查找的最简单方法

django suit管理过滤器-覆盖查找的最简单方法,django,filter,admin,Django,Filter,Admin,当使用Django suit的管理过滤器时,当我选择一个值时,字段名将消失。 例如: 如图所示,当有人选择“选择”字段时,他们只能看到所选的值(高) 这有时是不好的;例如,对于“库存”的布尔字段,您只能看到“是”,但我更希望看到“库存:是”。 我知道我可以定制一个过滤器并指定查找元组,但我想知道是否有更干净、更可持续的方法来实现这一点 要说明有多少冗余代码,请执行以下操作: class InventoryFilter(admin.SimpleListFilter): title = '

当使用Django suit的管理过滤器时,当我选择一个值时,字段名将消失。 例如:

如图所示,当有人选择“选择”字段时,他们只能看到所选的值(高)

这有时是不好的;例如,对于“库存”的布尔字段,您只能看到“是”,但我更希望看到“库存:是”。 我知道我可以定制一个过滤器并指定查找元组,但我想知道是否有更干净、更可持续的方法来实现这一点

要说明有多少冗余代码,请执行以下操作:

class InventoryFilter(admin.SimpleListFilter):
    title = 'is_in_stock'
    parameter_name = 'is_in_stock'
    def lookups(self, request, model_admin):
        return (('Yes', 'in stock:Yes'),('No', 'in stock:No'))

    def queryset(self, request, queryset):
        return queryset.filter(is_in_stock=True)


@admin.register(Inventory)
class InventoryAdmin(admin.ModelAdmin):
    list_display = ('is_in_stock',)
    list_filter = ('is_in_stock',)
我必须对每个变量都这样做!
我在寻找一种更聪明的方法。谢谢

另一个解决方案,扩展模板并在下拉列表前显示字段名(如果字段有值)。

另一个解决方案,扩展模板并在下拉列表前显示字段名(如果字段有值)。

这对我有用,Django Suit V2

list_filter = ('Model_ForeignKey', )

这是我的工作,Django Suit V2

list_filter = ('Model_ForeignKey', )

我看不出定制过滤器有什么问题。这是不是代码太多了?我看不出定制过滤器有什么问题。这是不是太多代码了?我需要将查询键传递给模板。唯一的方法是在构造函数中使用关键字参数,但我不知道如何将查询键转换为查询。你看,我不想对我的管理页面中的每个过滤器都这样做,因为它们有数百个。不是每个过滤器,我假设模板都有一个forloop;)不知何故,我需要将查询键传递给模板。唯一的方法是在构造函数中使用关键字参数,但我不知道如何将查询键转换为查询。你看,我不想对我的管理页面中的每个过滤器都这样做,因为它们有数百个。不是每个过滤器,我假设模板都有一个forloop;)