2

同じアプリケーションに2つのモデルがあります。このアプリケーションは「ニュース」と呼ばれ、モデルには「Article」と「Category」という2つのクラスがあります。

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)

アーカイブされているがカテゴリ別にグループ化されているすべての記事を表示するクエリを作成したいと思います。

これを効率的に達成するにはどうすればよいですか?

4

3 に答える 3

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

私はこれを編集して、より多くの情報を取得して支援します。

与えられた:

  • cat1
    • art1
    • art2-アーカイブ
    • art3
  • cat2
    • art4
    • art5
    • art6-アーカイブ
  • cat3
    • art7-アーカイブ
    • art8-アーカイブ
    • art9

クエリセットに何を含めたいですか?

于 2010-01-08T15:23:47.217 に答える
3

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

于 2010-01-14T17:58:16.290 に答える
2

これはあなたが望むものではありませんか?

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)
于 2010-01-08T16:14:52.390 に答える