Запросы datetime.datetime в appengine ведут себя иначе, чем помощь сервера dev! - PullRequest
0 голосов
/ 14 мая 2010

У меня возникли проблемы с вещами, которые работают локально и не работают в среде Python движка приложения:

По сути, я хочу получить программу из epg между диапазонами даты и времени. я знаю, что не могу сделать два, где> <, поэтому я увидел предложение сохранить даты в виде списка как datetime.datetime, что я и сделал. </p>

[datetime.datetime(2010, 5, 10, 14, 25), datetime.datetime(2010, 5, 10, 15, 0)]

Это нормально. но когда я пытаюсь сравнить это:

progranon = get_object(Programs2Channel, 
                           'channel_id =', channelobj.key(),
                           'endstartdate >', programstart_minex, 
                           'endstartdate <', programstart_minex
                           )

По какой-то причине это работает локально, но не может получить данные из обработчика приложений.

* Я использую патч django для движка приложений Google, который использует get_object для извлечения данных в транзакциях.

Пожалуйста, помогите.

Вот более подробная информация:

это СПИСОК:

[datetime.datetime(2010, 5, 13, 10, 45), datetime.datetime(2010, 5, 13, 11, 30)]

#this is the query:

programstart = ""+year+"-"+month+"-"+day+" "+hour+":"+minute
programstart_minex = datetime.strptime(programstart, "%Y-%m-%d %H:%M")

progranon = Programs2Channel.gql('WHERE channel_id = :channelid AND endstartdate > :programstartx AND endstartdate < :programstartx',channelid = channelobj.key(),programstartx=programstart_minex).get()

Ответы [ 3 ]

1 голос
/ 15 мая 2010

это может быть проблемой?

Из: http://code.google.com/appengine/docs/python/datastore/gqlreference.html

дата, время или литерал времени, с числовыми значениями или строкой представление, в следующем формы: DATETIME (год, месяц, день, час, минута, секунда) DATETIME ('ГГГГ-ММ-ДД ЧЧ: ММ: СС')

мой локальный серверный разработчик сохраняет дату и время в числовом формате ГГГГ-ММ-ДД, а механизм приложения сохраняет дату и время (2010, 5, 10, 14, 25),

ЛОКАЛЬНЫЙ список даты и времени:

2010-05-09 08:30:00,2010-05-09 09:00:00

СПИСОК ДВИГАТЕЛЕЙ APP:

[datetime.datetime(2010, 5, 13, 10, 45), datetime.datetime(2010, 5, 13, 11, 30)]

Может быть, это проблема?

0 голосов
/ 15 мая 2010

Как насчет запросов только к программам, которые запускаются после mindate (просто> запрос), а затем фильтруются в памяти? Если это ТВ-гид, мы не говорим о тысячах возможных сущностей, верно? вероятно ~ 100 вершин?

0 голосов
/ 14 мая 2010

К сожалению, это известная проблема с dev_appserver и запросами по спискам.

Однако теперь в dev_appserver включена экспериментальная заглушка sqlite, у которой нет этой проблемы. Попробуйте запустить его с --use_sqlite, и посмотрите, поможет ли это - должно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...