Question

J'ai deux modèles dans la même application. L'application est appelée « Nouvelles », et il a deux classes dans son modèle appelé « article » et « catégorie ».

class Category(models.Model):
    name = models.CharField(_("Name"), max_length=100)
    slug = models.SlugField(_("Slug"), max_length=100, unique=True)

class Article(models.Model):
    category = models.ForeignKey(Category, verbose_name=_("Category"))
    archived = models.BooleanField(_("Archive this?"), default=False)

Je veux créer une requête qui me montre tous les articles qui sont archivés mais regroupés par catégorie.

Comment pourrais-je accomplir cela efficacement?

Était-ce utile?

La solution 2

  
    
      

c = Category.objects.filter (article__archived = True)

    
  

Autres conseils

Article.objects.filter(archived=True).order_by('category')

Je suis l'édition ceci pour obtenir plus d'informations pour essayer de vous aider.

donnée:

  • cat1
    • art1
    • archivé art2-
    • art3
  • cat2
    • art4
    • art5
    • archivé art6-
  • cat3
    • archivé art7-
    • archivé art8-
    • art9

qu'est-ce que vous voulez que votre queryset contenir?

est-ce pas ce que vous voulez?

class Article(models.Model):
    category = models.ForeignKey(Category, related_name='articles')
    archived = models.BooleanField(default=False)

categories = Category.objects.select_related("articles").filter(articles__archived=True)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top