Фильтр запросов dev Engine сервера приложений не работает - PullRequest
1 голос
/ 20 февраля 2012

Я наблюдаю странное поведение с локальным devserver App Engine при фильтрации по запросу.

Я реализовал этот Sharded Counter.

http://code.google.com/appengine/articles/sharding_counters.html

И вот что я вижу:

  1. Я увеличиваю счетчик, и счетчик успешно создается, и счет обновляется, как и должно.
  2. Сразу после этого Когда я вызываю get_count (), он возвращает счетчик только что созданного объекта GeneralCounterShard
  3. Через мгновение, когда я вызываю getCount (), он ничего не возвращает.

После отладки я замечаю, что запрос, который должен соответствовать объекту GeneralCounterShard, для которого я хочу рассчитывать, не совпадает с предоставленным именем.

def get_count(name):    
"""Retrieve the value for a given sharded counter.
Parameters:      name - The name of the counter    """
total = memcache.get(name)
if total is None:
    total = 0
    for counter in GeneralCounterShard.all().filter('name = ', name):
        total += counter.count
        memcache.add(name, total, 60)
return total

Таким образом, фильтр в приведенном выше коде ничего не соответствует, пока являются объектами GeneralCounterShard с указанным именем в базе данных.

Я должен сказать, что я новичок в App Engine и Python, но я не понимаю, почему это работает на мгновение, а потом уже нет. Сущности все еще находятся в базе данных.

Может быть, это какая-то ошибка или я что-то упустил?

Спасибо!

1 Ответ

1 голос
/ 22 февраля 2012

В этом фрагменте: .filter ('name =', name) Я думаю, вам нужно удалить пробел после =.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...