0

Tout simplement, le filtre django (standard) vous permet de voir "Tous". Je veux créer une option pour afficher les éléments qui contiennent « Aucun »Filtre permettant d'afficher les relations "nulles" (où aucun résultat n'est associé à l'élément)

La requête serait quelque chose comme ceci:

tags = Product.objects.exclude(tag__isnull=True) 

Mon 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 

Comment puis-je atteindre cet objectif? J'ai essayé un SimpleListFilter, mais ceci a juste énuméré tous les articles dans un filtre. Je veux que les éléments apparaissent dans la page d'administration. Est-ce qu'une action Admin peut le faire?

Répondre

0

Je viens juste pensé que ce OUT- Django fait cela automatiquement en utilisant « list_filter ». Mais cela ne fonctionne que si vous utilisez la balise (nom de soi tel que défini dans models.py), et non la façon dont je l'ai eu comme ci-dessous.

Tout ce que je devais faire était de changer

list_filter: ('tag__name') 

à

list_filter: ('tag') 

C'est la méthode du stock de montrer les filtres Django. Il me permet de voir tous & (aucun)

0

Vous pouvez exclure tout ce qui n'a pas d'étiquette comme:

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

Merci. Est-ce que je réalise ceci en utilisant une action d'admin? SimpleListFilter ne fonctionnerait pas? – Ycon