I ont les 2 modèles suivants:Est-il possible de filtrer sur un élément associé dans les annotations Django?
class Job(models.Model):
title = models.CharField(_('title'), max_length=50)
description = models.TextField(_('description'))
category = models.ForeignKey(JobCategory, related_name='jobs')
created_date = models.DateTimeField(auto_now_add=True)
class JobCategory(models.Model):
title = models.CharField(_('title'), max_length=50)
slug = models.SlugField(_('slug'))
Voici où je suis à la requête jusqu'ici:
def job_categories():
categories = JobCategory.objects.annotate(num_postings=Count('jobs'))
return {'categories': categories}
Le problème est que je ne veux que compter les emplois qui ont été créés dans le 30 derniers jours. Je souhaite toutefois renvoyer toutes les catégories, et pas seulement les catégories qui ont des emplois qualifiés.
Cela renverra uniquement les catégories qui ont des emplois créés au cours des 30 derniers jours. J'essaie également d'éviter de renvoyer plusieurs jeux de requête, car cela va à l'encontre du but de l'utilisation des annotations. Cette fonction existe réellement sous forme de template, et j'espérais, au niveau de la couche de template, inclure les count avec chacune des catégories (même si le compte est 0). Merci quand même. – gsiegman
Oui, je pense que vous allez devoir effectuer deux requêtes. – monkut