2013-03-04 3 views
1

Я делаю запрос на стол в postgres с полем datetime с поддержкой часового пояса. Я делаю отличный выбор, чтобы группировать все результаты по часам в день.Django удалить Часовой пояс

footage = IpCameraFootage.objects.filter(ipCamera=c, start__gte=start, end__lte=end).extra(select={'hours': "to_char(start,'dd/mm/yyyy hh24')"}).values_list('hours', flat=True).distinct().order_by('hours') 

Это все работает отлично, но когда я перебираю результаты. Он применяет преобразование часового пояса. Я пытаюсь получить прямое значение из базы данных без часового пояса. Например, если он возвращает значение:

05/03/2013 07 

Когда я достигаю часы переменных в представлении Джанго, используя следующие:

for f in footage: 
    print f 

значение:

04/03/2013 21 

Любой идеи, как получить результат, который он должен быть?

Приветствие,

ответ

1

Может функцию форматирования вы делаете в дополнительном заявлении заменяется командой чистого питона на возвращаемом QuerySet?

что-то вроде

from django.utils.timezone import utc 

for f in footage: 
    print('{0:%d/%m/%Y %H}':format(f.start.replace(tzinfo=utc))) 

иначе, в шаблонах, в соответствии с django docs, вы можете использовать

{% load tz %} 

{% localtime off %} 
    {{ value }} 
{% endlocaltime %} 
Смежные вопросы