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 атрибут входного элемента.

Другие вопросы по тегам