0

非常簡單,django過濾器(標準)讓您可以選擇查看「全部」。我想創建一個選項,以顯示包含「無」項目過濾器顯示「null」關係(其中沒有與該項目相關的結果)

查詢將是這樣的:

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

我只是想通這OUT- Django的自動執行此操作使用「list_filter」。但它只適用於使用標籤(自定義在models.py中定義),而不是我如下所示。

我所要做的就是改變

list_filter: ('tag__name') 

list_filter: ('tag') 

這是顯示的Django過濾器的股票方法。它讓我看到全部&(無)

0

您可以排除所有沒有標籤爲:

tags = Product.objects.all().exclude(tag=None) 
+0

謝謝。我是否使用管理員操作來實現此目的? SimpleListFilter不會工作? – Ycon

相關問題