python - 是否可以过滤 Django 注释中的相关项目?

标签 python django annotations django-queryset

我有以下两个模型:

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'))

这是我到目前为止的查询:

def job_categories():
    categories = JobCategory.objects.annotate(num_postings=Count('jobs'))
    return {'categories': categories}

问题是我只想计算过去 30 天内创建的工作。但是,我想返回所有类别,而不仅仅是那些具有合格工作的类别。

最佳答案

只是一个猜测...但这行得通吗?

def job_categories():
    thritydaysago = datetime.datetime.now() - datetime.timedelta(days=30)
    categories = JobCategory.objects.filter(job__created_date__gte=thritydaysago).annotate(num_postings=Count('jobs'))
    return {'categories': categories}

有关跨越查询的更多详细信息,请参阅“lookups-that-span-relationships”。 嗯……可能需要另一个查询来获取所有类别……

关于python - 是否可以过滤 Django 注释中的相关项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1292081/

相关文章:

Python + BeautifulSoup 导出到 CSV

python - 使用 Django ORM 从相关表中获取数据

java - Spring 3 中的自定义 Autowire 候选 bean

java - 如何在运行时修改注释的属性

python - 使用谷歌应用引擎python从外部链接上传图像到谷歌云存储

python - 当 prefetch_count == 1 时拒绝并重新排队 RabbitMQ 任务

Python Mechanize 模块代理设置问题

python - Django,导入错误 : cannot import name 'task' from 'celery'

python - Jenkins 构建的 Django 应用程序的 Docker 容器中的错误时间

java - 对多个注释进行分组