0

我有一个应用程序,它通过 html 表单获取一些参数,然后创建一个模型实体。问题是,无论我尝试什么,都会收到如下错误:

BadValueError: Property xxx must be a list

这是模型:

 xxx = db.ListProperty(int)

这是用于获取列表的句子:

xxx = self.request.get('xxx')

我认为当我点击提交按钮时,html 表单会返回一个字符串。那么,我如何能够从 html 表单中的输入 type="text" 获取列表?如果我写 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('/')

这是获取用户输入以创建模型实体的最佳方式吗?我该如何修复它以获取列表并将其写入模型属性?

4

2 回答 2

2

The solution was very simple, once an expert showed me :)

tlist = map(lambda x: int(x), self.request.get_all('xxx'))
于 2010-12-30T13:46:18.740 回答
0

你应该把列表放在里面xxx,而不是字符串或整数。

也许您想使用request.get_all方法,而不是 get。

于 2010-12-30T01:29:42.653 回答