Komplexe Django Abfrage über Fremdschlüssel
-
19-09-2019 - |
Frage
Ich habe zwei Modelle in der gleichen Anwendung. Die Anwendung wird „News“ genannt, und es hat zwei Klassen in seinem Modell namens „Artikel“ und „Kategorie“.
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)
Ich möchte eine Abfrage erstellen, die mir alle Artikel zeigt, die archiviert werden, sondern nach Kategorien gruppiert.
Wie würde ich erreichen dies effizient?
Lösung 2
c = Category.objects.filter (article__archived = True)
Andere Tipps
Article.objects.filter(archived=True).order_by('category')
i bin der Bearbeitung dieses weitere Informationen zu erhalten, um zu versuchen und zu helfen.
gegeben:
- cat1
- art1
- art2-Archiv
- art3
- cat2
- art4
- art5
- art6-Archiv
- cat3
- art7-Archiv
- art8-Archiv
- art9
Was würden Sie wollen Ihre queryset enthalten?
Ist das nicht das, was Sie wollen?
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)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow