1

我不断收到以下错误: BadArgumentError: Expected an instance or iterable of (, ); 收到 idofOne(一个 str)。

并尝试转换为 int() 但随后收到不同的错误消息: ValueError: invalid literal for int() with base 10: ''

到底是怎么回事?我正在使用 Google App Engine - 并从 html 模板中检索 idofOne。它是使用 jinja 的 ID 表示形式——它显示的值为“1”——所以它不应该为空——有什么建议吗???

类makeHeadings3(处理程序):

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 的键 不要编辑

4

2 回答 2

1

您可以先检查:

level_1_info=Level_1_Headings.get_by_id("1")

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

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

我希望这有帮助

于 2012-12-31T07:14:59.560 回答
1

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

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

在解析 post 或 get 参数时,您必须在将它们传递给数据存储查询之前将它们转换为正确的类型。

于 2012-12-31T11:56:46.960 回答