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?

War es hilfreich?

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
scroll top