Строка запроса с ошибкой «недопустимый литерал для int () с основанием 10» - PullRequest
2 голосов
/ 23 августа 2011

Я пытался получить объект Model из хранилища данных, используя ключ, переданный из строки запроса. Это работало до этого, однако, недавно, когда я назвал файл из restaurantProfile.html в restaurant_profile.html. Я не знаю, из какой части произошла ошибка.

Ключ от моего ресторана должен содержать ключ. Однако из журнала GAE я установил пользовательскую отладку, чтобы увидеть, что содержится в ключе Restaurant, переданном моему обработчику (Результат):

GAE Log:
Restaurant Key = <bound method Restaurant.key of <persistence.model.Restaurant object at 0x5cd3c5acd5768900>>

Может кто-нибудь сказать мне, что здесь не так? Ключ от ресторана, похоже, не передан обработчику.

<a href="/restaurant_profile?restaurant_key={{ key }}">

Класс обработчика:

* * 1010

Ошибка: «недопустимый литерал для int () с основанием 10» для следующего:

def get_RestaurantDetails(restaurant_key):
   if restaurant_key:
       restaurant = db.Key.from_path('Restaurant', int(restaurant_key))
       return db.get(restaurant)

Код для получения ключа:

for restaurant in foundRestaurants:
            result_data[restaurant.key] = restaurant

Проблема решена следующим образом:

 key = restaurant.key().__str__()
            result_data[key] = restaurant

Ответы [ 2 ]

1 голос
/ 19 октября 2011

Проблема решена следующим образом:

 key = restaurant.key().__str__()
            result_data[key] = restaurant
0 голосов
/ 23 августа 2011

Может кто-нибудь сказать мне, что здесь не так?

это точно так же, как он говорит: restaurant_key это метод.Вы не можете позвонить int() на это;Вы намеревались вызвать int() после результата вызова restaurant_key()?

Что касается того, почему restaurant_key является методом, то вот что вернул self.request.GET.get(u'restaurant_key').Может, стоит перечитать документацию ...

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