BadArgumentError:期望一个实例或可迭代的(<type'int'=“”>,<type'long'=“”>);收到idofOne(str)</type> </type>

时间:2012-12-31 04:25:44

标签: google-app-engine

我一直收到以下错误: BadArgumentError:期望(())的实例或可迭代;收到了idofOne(str)。

并试图转换为int(),但后来得到一个不同的错误说: ValueError:int()的基数为10的无效文字:''

发生了什么事?我正在使用Google App Engine - 并从html模板中检索idofOne。它是使用jinja的ID表示 - 它显示的值为“1” - 所以它不应该为空 - 任何建议???

class makeHeadings3(Handler):

def get(self):
    self.render('new_entries/ADMIN_make_headings3.html')

def post(self):
    idofOne = self.request.get("idofOne")

    type2=self.request.get("type2")
    heading2name = self.request.get("headingTwo")
    description2 = self.request.get("descriptionTwo")

    heading3 = self.request.get("headingThree")

    #getting relevant level 1 entry by id 

    level_1_info=Level_1_Headings.get_by_id(idofOne)

实际上 - 我将来自我的模板的值从id()更改为key()。但是我发现在我从中检索值的模板中返回空字符串“”。为什么?我在模板中看到了键的值,我正在使用正确的名称“keyofOne”进行检索,那么为什么它会回空我的python服务器代码? 类别1的关键         不要编辑

2 个答案:

答案 0 :(得分:1)

您可以先查看:

level_1_info=Level_1_Headings.get_by_id("1")

然后需要在代码中添加debug以查看“idofOne”返回的值

import logging
# snip
logging.info("type "+type(idofOne))
logging.info("value "+idofOne)

我希望这会有所帮助

答案 1 :(得分:1)

下面应该修复它。您需要获取该id的整数值

idofOne = int(self.request.get("idofOne"))

总是在解析post或get参数时,必须先将它们转换为正确的类型,然后再将它们传递给数据存储区查询。