Как ограничить набор результатов Django-nonrel в Google App Engine? - PullRequest
1 голос
/ 24 мая 2011

У меня есть простая модель:

class News(models.Model):

    title = models.CharField(max_length=255, verbose_name=_("title"))
    content = models.TextField(default='', verbose_name=_("content"))
    panel = models.CharField(max_length=50, default='', verbose_name=_("panel"))
    created = TzDateTimeProperty(auto_now_add=True, verbose_name=_("date created"))
    lastmodified = TzDateTimeProperty(auto_now=True, verbose_name=_("date modified"))

Я хочу получить 5 последних новостей, и я знаю, что с набором запросов БД Google App Engine я могу получить 5 последних записей следующим простым способом:

results = News.all().filter(panel = panel).order('created').fetch(5)

Когда Django работает в Google App Engine, мне нужно сделать:

results = News.objects.filter(panel = panel).order_by('created')[:5]

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

1 Ответ

1 голос
/ 24 мая 2011

Вы можете сделать что-то вроде этого

results = News.objects.filter(panel = panel).order_by('created')
if results is not None:
   new_results = results[:5]
...