仅检索Django中datetime列的日期部分

时间:2012-01-02 08:29:31

标签: django django-models

我是Django / Python的首发。

我有一个模型MyModel。它有许多datetimecharinteger类型的字段。现在,我想要一个值列表,其中包含仅包含日期部分的日期时间字段的值。

我尝试过使用日期函数[reference](https://docs.djangoproject.com/en/1.2/ref/models/querysets/#dates),但它仅适用于一个字段。我有多个日期时间字段,所有字段都必须以所需格式检索。

基本上,我想要一个Django相当于:

select stringfield1, date(datefield1), integerfield1, date(datefield2) from mymodel;(PostGreSQL)

这甚至可能吗?如果是的话,我该怎么办?

1 个答案:

答案 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对象。)