很简单,django过滤器(标准)为您提供了查看"全部"的选项。我想创建一个选项来显示包含"无"
的项目查询将是这样的:
tags = Product.objects.exclude(tag__isnull=True)
我的models.py
class Tag(models.Model):
name = models.CharField(max_length=100, blank=False)
def __unicode__(self):
return self.name
class Product(models.Model):
name = models.CharField ("Name", max_length=400)
tag = models.ManyToManyField(Tag, blank=True)
def __unicode__(self):
return self.name
我将如何实现这一目标?我尝试了一个SimpleListFilter,但是这只列出了过滤器中的所有项目。我希望项目显示在管理页面视图中。管理员操作可以执行此操作吗?
答案 0 :(得分:2)
您可以将所有没有标记的内容排除在:
tags = Product.objects.all().exclude(tag=None)
答案 1 :(得分:1)
我刚想通了--Dangoo使用“list_filter”自动执行此操作。但它只有在你使用标签(在models.py中定义的自我名称)时才有效,而不是我在下面的方式。
我所要做的就是改变
list_filter: ('tag__name')
到
list_filter: ('tag')
这是显示Django过滤器的stock方法。它让我可以看到All& (无)