Проверка флажка в Django как поле в форме - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть форма с одним полем, которая представляет собой двухуровневый флажок. Если я выберу родительский флажок, пока не выбрано ни одного дочернего элемента, родительский элемент со всеми дочерними элементами будет отображаться в моих данных 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)'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...