Сложный запрос Django по внешним ключам



У меня есть две модели в одном приложении. Приложение называется "новости", и в его модели есть два класса, называемые" статья "и"категория".



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)


Я хочу создать запрос, который показывает мне все статьи, которые архивированы, но сгруппированы по категориям.



Как бы я мог сделать это эффективно?

590   3  

3 ответов:

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

Я редактирую это, чтобы получить больше информации, чтобы попытаться помочь.

Дано:

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

Что бы вы хотели, чтобы ваш queryset содержал?

C = Категория.объекты.фильтр (статья _ _ archived=True)

Разве это не то, чего ты хочешь?

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)

Comments

    Ничего не найдено.