Как я могу запросить объекты с полем даты, используя определенный месяц и год? - PullRequest
1 голос
/ 22 января 2010

Мне нужно сделать запрос gql к набору некоторых объектов, имеющих поле даты. Я очень новичок в Python, а также GAE, поэтому я немного игривый в этом. Я смотрю в документации, но не могу найти то, что я ищу. В основном я сделал следующий метод класса

Event.getEventsForMonth(cls, month,year):

Итак, я пытаюсь запросить мой объект, где месяц и год поля даты попадают в указанный диапазон. Я пытался создать объект даты и использовать его для сравнения, но до сих пор не испытывал радости.

dateto = str(year)+str(month+1)+"01"
datefrom = str(year)+str(month)+"01"
if month + 1 == 13:
    dateto = str(year+1)+"01"+"01"

query = GqlQuery("SELECT * FROM Event WHERE date >= :datefrom AND date <= :dateto", dateto=dateto, datefrom=datefrom)
return query

Этот метод для меня выглядит ужасно, поскольку я не очень разбираюсь в основных методах, которые я могу использовать из Python, встроенного в GQL-запрос.

Любая помощь приветствуется

Приветствия

Andrew

1 Ответ

3 голосов
/ 22 января 2010

Сначала сохраните даты как экземпляры DateProperty или DateTimeProperty в хранилище данных.

Затем вы можете выполнить запрос примерно так:

def getEventsForMonth(self, month, year):
  start_date = datetime.datetime(year, month, 1)
  if month == 12:
    end_date = datetime.datetime(year + 1, 1, 1)
  else:
    end_date = datetime.datetime(year, month + 1, 1)
  return Events.all().filter('date >=', start_date).filter('date <=', end_date).fetch(1000)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...