2013-02-27 5 views
1

Я пытаюсь проверить, является ли объект GQL пустым или нет (в Google App Engine с использованием Python), как мне это сделать? Я попытался это, но он не работает:Как проверить, является ли объект GQL пустым

comments = db.GqlQuery("SELECT * " 
           "FROM Comment " 
           "where ANCESTOR IS :1 " 
           "order by date DESC", 
           movie_data) 
     if comments: 
      ratingsum = 0 
      i=0 
      for comment in comments: 
       ratingsum=ratingsum + comment.rating 
       i+=1 
      average = ratingsum/i 
     else: 
      average = "no ratings" 

ответ

0

Запрос GQL дает объект запроса, но не результаты (сущности). Чтобы получить результаты, вы должны получить результаты: используя выборку, подсчет, получение или повторение результатов набора результатов.

0

According to @NickJohnson, для вызова count потребуется выполнить один и тот же запрос дважды. Поэтому, чтобы этого избежать, и поскольку вам придется перебирать комментарии, вы можете также «обнаружить», когда комментарии пусты, наблюдая побочный эффект, - i будет равен нулю, если comments пуст:

comments = db.GqlQuery("SELECT * " 
           "FROM Comment " 
           "where ANCESTOR IS :1 " 
           "order by date DESC", 
           movie_data) 
ratingsum = 0 
i = 0 
for comment in comments: 
    ratingsum += comment.rating 
    i += 1 
if i:  
    average = ratingsum/i 
else:  
    average = "no ratings" 
Смежные вопросы