Форум сайта python.su
Моя модель
class BaseArticleModel(polymodel.PolyModel):
title = db.StringProperty()
created_at = db.DateProperty(auto_now_add=True)
updated_at = db.DateProperty(auto_now=True)
class News(BaseArticleModel):
body = db.TextProperty()
Мне нужны данные за последний месяц. При попытке сделать:
q = News.all().filter('created_at.month = ', datetime(2011,04,01).month)
print q.title
Я получаю сообщение “IndexError: The query returned fewer than 1
results”
Офлайн
Чем не устраивает
q = News.all().filter('created_at >=', datetime.utcnow()-timedelta(30))
Офлайн
zheromoЯ не все указал в вопросе. Под последним месяцем имеется в виду значение последнего месяца в хранилище. Т.е. если в текущем месяце были какие-то сообщения, то фильтровать по этому месяцу и году, а если нет, то найти в хранилище последний пост и по его дате, а точнее месяцу и году установить фильтр.
Чем не устраиваетК тому же .month - это не последний месяц, а просто месяц даты.q = News.all().filter('created_at >=', datetime.utcnow()-timedelta(30))
Либо к рецепту http://appengine-cookbook.appspot.com/recipe/fetch-a-months-worth-from-the-datastore
Отредактировано (Апрель 2, 2011 21:19:01)
Офлайн
Если известен диапазон дат, то как-то так:
q = News.all().filter('created_at >=', datestart).filter('created_at <', dateend)
walterЕсли кратко, если мы в модели напишем например:
Где можно прочитать про @db.ComputedProperty?
class News(db.Model):
created_at = db.DateTimeProperty()
@db.ComputedProperty
def month(self):
return self.created_at.month
Офлайн
zheromoЯ так и реализовал, только не пойму в чем разница между @property и @db.ComputedProperty?
Если кратко, если мы в модели напишем например:то в модели появится поле month - чему оно равно - ясно из кодаclass News(db.Model):
created_at = db.DateTimeProperty()
@db.ComputedProperty
def month(self):
return self.created_at.month
Офлайн
walterproperty создается непосредственно ПОСЛЕ извлечения объекта модели из базы, ComputedProperty хранится НЕПОСРЕДСТВЕННО в самой базе и, соответственно, может использоваться в фильтрах, сортировках и т.д.
только не пойму в чем разница между @property и @db.ComputedProperty?
Офлайн