Django WebTest:按值选中/取消选中复选框

时间:2015-12-04 10:41:31

标签: django forms checkbox django-webtest

我的WebTest响应中有一个带有一组复选框(全部在同一字段名下)的表单,我想根据它们的值取消选中其中一些复选框。我试过这个:

    ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");

    String js = "var carsfromjs = [\"Saab\", \"Volvo\", \"BMW\"]";

    engine.eval(js);

    String[] cars = (String[])engine.eval("Java.to(carsfromjs, \"java.lang.String[]\")");

    for(int i=0; i<cars.length; i++){

        System.out.println(cars[i]);
    }

显然,这是非常黑客的代码,必须有更好的方法。此外,这实际上没有取消选中我想要的框:当我遍历表单中的复选框时,不再有值为my_form = response.forms['form-i-want'] for i in range(len(my_form.fields.get('field-i-want'))): if my_form.fields.get('field-i-want')[i].value == "value-to-uncheck": my_form.fields.get('field-i-want')[i].checked = False 的元素:该值已设置为{{1} }。当我提交表单时,表现就好像没有对表单进行任何操作。

1 个答案:

答案 0 :(得分:0)

不幸的是,您设置输入checked状态的方法确实会删除输入元素的不良副作用。

根据the docs,要将复选框输入标记为已选中,您需要编写:

my_form['field-i-want'] = True

其中'field-i-want'是输入元素的name属性的值。