2012-01-02 2 views
1

Я стартер в Django/Python.Извлечение только даты в столбце datetime в Django

У меня есть модель MyModel. Он имеет много полей datetime, char, integer типов. Теперь мне нужен список значений, который имеет значения полей datetime, содержащих только части даты.

Я пробовал использовать функцию даты [ссылка] (https://docs.djangoproject.com/en/1.2/ref/models/querysets/#dates), но она работает только с одним полем. У меня есть несколько полей datetime, и все они должны быть получены в необходимом формате.

В принципе, я хочу Джанго эквивалент:

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

даже возможно ли это? Если да, то как мне продвинуться дальше?

ответ

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 объекта.)

+0

Thanx много для ваших усилий. Я должен передать сгенерированный запрос еще дальше как часть JSON. Таким образом, нужно сохранить его как список значений, возвращаемых набором запросов. Могу ли я сделать то же самое с этим? –

+0

Не прямо - если вы просто собираетесь использовать 'json.dump' или что-то еще, не имеет значения, используете ли вы' itertools.imap' - встроенная 'map' будет делать все правильно и вернуть список. –

Смежные вопросы