Django complexe requête sur les clés étrangères
-
19-09-2019 - |
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?
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