Сложный запрос 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)
Я хочу создать запрос, который показывает мне все статьи, которые архивированы, но сгруппированы по категориям.
Как бы я мог сделать это эффективно?
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 содержал?
Разве это не то, чего ты хочешь?
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