查询字符串错误“int()无效的基数为10”
问题描述:
我试图从数据存储使用从查询字符串传递的键获取Model对象。然而,在最近,我将restaurantProfile.html中的文件命名为restaurant_profile.html时,它在那之前起作用了。我不知道哪个部分出了问题导致了问题。查询字符串错误“int()无效的基数为10”
我的餐厅钥匙应该包含钥匙。不过,从GAE日志,我已经设置自定义调试,看看在餐厅钥匙传递给我的处理程序(结果)包含:
GAE Log:
Restaurant Key = <bound method Restaurant.key of <persistence.model.Restaurant object at 0x5cd3c5acd5768900>>
谁能告诉我什么是错了这里?餐厅的钥匙似乎没有传递给处理程序。
<a href="/restaurant_profile?restaurant_key={{ key }}">
处理类:
class RestaurantProfileHandler(webapp.RequestHandler):
def get(self):
restaurant_key = self.request.GET.get(u'restaurant_key')
logging.debug('Restaurant Key = %s', restaurant_key)
错误: “无效字面对于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
答
问题通过以下解决:
key = restaurant.key().__str__()
result_data[key] = restaurant
答
Can anyone tell me what's got wrong here?
它酷似它说:restaurant_key
是一种方法。那么你不能打电话给int()
;您是否打电话给int()
结果致电restaurant_key()
?
至于为什么restaurant_key
是一个方法,那么,这就是self.request.GET.get(u'restaurant_key')
返回。也许你应该重新阅读文档...
你能告诉我们在哪儿生成密钥的代码?你的日志文件说你传递了一个方法给你模板,而不是整数的关键。也许你在生成密钥时忘记了一些“()”。 – rocksportrocker
@ rocksportrocker,这是奇怪的部分。它在之前工作。而餐厅对象是有效的,因为它可以显示在结果页面上。在结果页面上,它会调用我想要传递密钥的页面。我在最后一节添加了代码。 – MrCooL
@rocksportrocker,你是对的。关键是错误地通过了。因为这个开发是通过GitHub更新的,所以这部分不是由我完成的。但是,我意识到从产生密钥的部分来看,密钥是错误的。好抓住! ;) – MrCooL