post 时无法获取多 select 字段名称(别无选择)

can't get multi-select field name when post (no choice)

html:

<form method="post">{% module xsrf_form_html() %}
    <input name="username" type="text">
    <select name="ss" multiple>
        <option value="1">hello</option>
        <option value="2">word</option>
    </select>
    <button type="submit">提交</button>
</form>

龙卷风:

class TestMultiSelectEmptyPost(BaseHandler):

    def get(self, *args, **kwargs):
        self.render('multi-select-empty-post.html')

    def post(self, *args, **kwargs):
        print self.request.arguments

浏览器: enter image description here

服务器return:

{'username': ['aaaa'], '_xsrf': ['xxx|xxx|xxx|xxx']}

multi-select 字段名称 "ss" 缺失

要确定用户是否选择了 none 个选项,请执行:

ss = self.request.arguments.get("ss")

get方法returnsNone如果没有值。所以,

if ss is None:
    print("User selected nothing")
else:
    print("ss = %s" % ss)

我建议使用 get_argument 方法而不是解析 request.arguments