Django admin GUI能否筛选文本字段是否为空?
我有一个Django模型,其中包含一个文本字段。在管理GUI中,我希望能够只筛选包含此字段中文本的记录。可能吗 类似这样的代码将对textfield的内容进行过滤,但会在“All”和过滤器中的每个不同条目上显示过滤器。我想筛选“全部”或“包含某些内容”Django admin GUI能否筛选文本字段是否为空?,django,Django,我有一个Django模型,其中包含一个文本字段。在管理GUI中,我希望能够只筛选包含此字段中文本的记录。可能吗 类似这样的代码将对textfield的内容进行过滤,但会在“All”和过滤器中的每个不同条目上显示过滤器。我想筛选“全部”或“包含某些内容” class MyModel(models.Model): # ... textfield = models.CharField(max_length=100) # ... class MyModelAdmin(admin
class MyModel(models.Model):
# ...
textfield = models.CharField(max_length=100)
# ...
class MyModelAdmin(admin.ModelAdmin):
list_display = ('...', 'textfield', '...')
list_filter = ('...', 'textfield', '...')
不,看到了吗
将列表过滤器设置为在中激活过滤器
更改列表的右侧栏
页面的管理员。这应该是一个
字段名列表,以及每个
指定的字段应为
BooleanField,CharField,DateField,
DateTimeField、IntegerField或
外键
但是
两件事
是的,但没有记录在案。查看
django\contrib\admin\filterspecs.py
了解如何创建默认过滤器规范以及如何创建自己的过滤器规范。此功能计划用于版本1.1,如果您现在想在最新的HEAD版本上尝试此功能,则已经有一个补丁:
另外,您可以在更改列表页面的URL上放置任意GET参数以过滤结果,这一事实也没有记录在案。例如
/admin/app/model/?field1\uu lte=5和field2\uu gte=10
,不幸的是?field\uu isnull=True
不起作用,但您可以很容易地进行实验,看看是否可以找到一个适用于您的情况的过滤器。是的,您可以扩展SimpleListFilter,并且从django 1.4开始就很容易地做到这一点。见:
请参阅:可能的副本