Ich habe folgende 2 Modelle:Ist es möglich, in Django-Annotationen nach einem verwandten Element zu filtern?
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'))
Hier ist, wo ich mit der Abfrage bin so weit:
def job_categories():
categories = JobCategory.objects.annotate(num_postings=Count('jobs'))
return {'categories': categories}
Das Problem ist, dass ich möchte nur Arbeitsplätze zählen, die in die erstellt wurden, nach 30 Tagen. Ich möchte jedoch alle Kategorien zurückgeben, nicht nur jene Kategorien, die qualifizierte Jobs haben.
Dies ist nur die Kategorien angezeigt werden kann, die in den letzten 30 Tagen Arbeitsplätze geschaffen haben. Ich versuche auch, die Rückgabe mehrerer Abfragegruppen zu vermeiden, da dies dem Zweck der Verwendung von Anmerkungen widerspricht. Diese Funktion existiert tatsächlich als TemplateTag, und ich hatte gehofft, in der Template-Ebene die Zählungen mit jeder der Kategorien einzuschließen (selbst wenn der Zählwert 0 ist). Trotzdem danke. – gsiegman
Ja, ich denke, Sie müssen nur zwei Abfragen durchführen. – monkut