У меня есть форма с одним полем, которая представляет собой двухуровневый флажок. Если я выберу родительский флажок, пока не выбрано ни одного дочернего элемента, родительский элемент со всеми дочерними элементами будет отображаться в моих данных json после отправки.Я хочу написать тест, чтобы проверить это.Я новичок в тесте Django, после прочтения документов Django, все еще борюсь за манипулирование флажком.Моя форма выглядит так:
class RerunForm(forms.Form):
items = ItemStatus(
queryset=models.Container.objects.none(),
widget=forms.CheckboxSelectMultiple(attrs=dict(checked='')),
help_text="Select items that you want to rerun.",
)
def __init__(self, rerunqueryset, *args, **kwargs):
super(RerunForm, self).__init__(*args, **kwargs)
self.fields['items'].queryset = rerunqueryset
class ItemStatus(forms.ModelMultipleChoiceField):
def label_from_instance(self, obj):
return "{} ({})".format(obj.name, obj.state)
rerunqueryset передается из представления, как это
<QuerySet [<Container: AT1>, <Container: AT1_1>, <Container: AT1_2>, <Container: AT1_3>, <Container: AT1_4>, <Container: AT2>, <Container: AT2_1>
Моя страница выглядит так:
В моем тесте на django я хочу проверить: 1. проверить элемент родительского уровня, когда ни один дочерний элемент не отмечен, родительские и все дочерние имена будут отображаться в json после отправки 2. проверить элемент родительского уровня и любой дочерний элемент, только проверенные дочерние элементы отображаются вДанные json после отправки.
До сих пор у меня есть коды, такие как клиент и контекст, для доступа к метке моего флажка, мой вопрос состоит в том, как установить для определенного флажка значение «флажок» и вызвать кнопку отправки?
>>>response = client.get('/rerun/1')
>>>response.context['form']['items'][0].data
{u'index': '0', u'name': 'items', u'template_name': u'django/forms/widgets/checkbox_option.html', u'type': u'checkbox', u'selected': False, u'attrs': {'checked': '', u'id': u'id_items_0'}, u'value': 5742, u'label': 'AT1 (PASS)'}