Я пишу довольно простое веб-приложение, основанное на Google Application Engine. Это первый раз, когда я работаю с Python и хранилищем данных Google.GqlQuery возвращает случайные результаты
Приложение должно отображать некоторые вопросы на своей домашней странице. Эти вопросы хранятся в таблице с именем «Вопрос».
class Question(db.Model):
question_id = db.IntegerProperty()
question = db.StringProperty()
Следующий код выбирает все записи этой таблицы и фиксирует данные в шаблоне.
questions = db.GqlQuery('SELECT * FROM Question ORDER BY question_id')
# debugging loop
for question in questions:
logging.info(questions.question_id)
template_values = {
'questions' : questions
}
И, наконец, шаблон отображает вопросы по index.html.
{% for question in questions %}
// HTML-CODE
{{ question.question }}
// HTML-CODE
{% endfor %}
На самом деле эти (очень простые) операции работают хорошо, но программа пропускает или добавляет вопросы в список дважды. Это происходит совершенно случайно. Я даже думал, что это может исчезнуть, когда оно не появилось часами. Ошибка должна произойти сразу после оператора GqlQuery, поскольку цикл отладки уже указывает на неправильные идентификаторы.
Какой вопрос пропущен или добавлен случайным образом, я не вижу здесь шаблона. Единственное, что это либо один вопрос больше или меньше, чем ожидалось. Никогда не кажется, что один вопрос пропускается, а другой добавляется дважды в одно и то же время. В таблице Question есть только пять записей на данный момент, поэтому это очень удобно.
Надеюсь, это не просто результат моего отсутствия опыта. Я провел дни по этому вопросу.
Заранее спасибо.