Pergunta

Eu tenho dois modelos no mesmo aplicativo. O aplicativo é chamado de "notícias" e possui duas classes em seu modelo chamado "artigo" e "categoria".

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)

Quero criar uma consulta que me mostre todos os artigos arquivados, mas agrupados por categoria.

Como eu conseguiria isso com eficiência?

Foi útil?

Solução 2

c = category.Objects.Filter (article__archived = true)

Outras dicas

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

Estou editando isso para obter mais informações para tentar ajudar.

dado:

  • CAT1
    • ART1
    • Art2-Archivado
    • ART3
  • CAT2
    • ART4
    • ART5
    • Art6-Archivado
  • CAT3
    • Art7-arco
    • Art8-arco
    • ART9

O que você gostaria que seu consulta conter?

Não é isso que você quer?

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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top