我是Django / Python的首发。
我有一个模型MyModel
。它有许多datetime
,char
,integer
类型的字段。现在,我想要一个值列表,其中包含仅包含日期部分的日期时间字段的值。
我尝试过使用日期函数[reference](https://docs.djangoproject.com/en/1.2/ref/models/querysets/#dates),但它仅适用于一个字段。我有多个日期时间字段,所有字段都必须以所需格式检索。
基本上,我想要一个Django相当于:
select stringfield1, date(datefield1), integerfield1, date(datefield2) from mymodel;
(PostGreSQL)
这甚至可能吗?如果是的话,我该怎么办?
答案 0 :(得分:1)
我不确定Django是否有内置的方法来做到这一点。您可以使用itertools.imap
将相关字段延迟转换为date
个对象:
from itertools import imap
values = MyModel.objects.values_list('stringfield1', 'datefield1',
'integerfield1', 'datefield2')
values = imap(lambda (s, d1, i, d2): (s, d1.date(), i, d2.date()), values)
(但请注意,在此之后,您不再处理ValuesListQuerySet
,而是使用itertools.imap
对象。)