Django WebTest: установите / снимите флажок по значению
У меня есть форма с набором флажков (все с одним и тем же именем поля) в моем ответе WebTest, и я хотел бы снять некоторые из них в соответствии с их значением. Я пробовал это:
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
Очевидно, это очень хакерский код, и должен быть лучший способ. Кроме того, это на самом деле не снимает флажок, который я хочу: когда я затем перебираю флажки в форме, больше нет элемента со значением value-i-want
: значение было установлено в None
, И когда я отправляю форму, она ведет себя так, как будто ничего не было сделано с формой.
1 ответ
К сожалению, ваш метод настройки checked
состояние ввода действительно будет иметь нежелательный побочный эффект удаляемого элемента ввода.
Согласно документам, чтобы пометить вход флажка как проверенный, вы захотите написать:
my_form['field-i-want'] = True
куда 'field-i-want'
это значение name
атрибут входного элемента.