我有一个应用程序,它通过一个html表单获取一些参数,然后创建一个模型实体。问题是,无论我尝试什么,我都会收到这样的错误:
BadValueError: Property xxx must be a list
这是模型:
xxx = db.ListProperty(int)
这是用于获取列表的句子:
xxx = self.request.get('xxx')
我认为html表单在我点击提交按钮时返回一个字符串。那么,我如何能够以html格式从输入类型=“文本”中获取列表?如果我写1,2它是不行的,因为不是别的。
python代码类似于helloworld应用程序,其中表单用于在页面上发布问候语,区别在于我需要获取列表而不是文本。
self.response.out.write("""
<form action="/sign" method="post">
<div><textarea name="content" rows="3" cols="60"></textarea></div>
<div><input type="submit" value="Sign Guestbook"></div>
</form>
</body>
</html>""")
class Guestbook(webapp.RequestHandler):
def post(self):
greeting = Greeting()
if users.get_current_user():
greeting.author = users.get_current_user()
greeting.content = self.request.get('content')
greeting.put()
self.redirect('/')
这是获取用户输入以创建模型实体的最佳方式吗?如何修复它以便获取列表并将其写入模型属性?
答案 0 :(得分:2)
解决方案非常简单,一旦专家告诉我:)。
tlist = map(lambda x: int(x), self.request.get_all('xxx'))
答案 1 :(得分:0)
您应该将列表放在xxx
内,而不是字符串或整数。
也许你想要使用request.get_all方法,而不是get。