【问题标题】:Extracting a year from a DateField in django in the database从数据库中django中的DateField中提取年份
【发布时间】:2015-12-09 00:17:41
【问题描述】:

我知道可以像这样在数据库中按年使用lookups to filter a DateField

MyModel.objects.filter(date__year=2000) # Returns all objects with a year of 2000

但是,我想在使用 values() call 时提取:

MyModel.objects.all().values('label','date__year') # Fails!

FieldError: Cannot resolve keyword 'year' into field. Join on 'date' not permitted.

我已尝试进行自定义查找,但这不适用于值调用。

如何在这种查询中只提取年份?


编辑:明确地说,我知道一旦查询集从数据库返回,我可以在 Python 中以一百万种方式迭代查询集。但我不想这样做。

【问题讨论】:

标签: python django django-queryset


【解决方案1】:

如果需要,您可以使用list comprehension

语法是这样的:

[(x['label'], x['date'].year) for MyModel.objects.all().values('label','date')]

【讨论】:

  • 不,我需要这个作为查询集调用。我无法使用 python 提取它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 2019-02-09
  • 2013-08-27
  • 2017-10-22
相关资源
最近更新 更多