为什么我的Django表单无效?

2024-09-30 02:34:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建表单

角色是单选按钮,团队是复选框

class OrganizationMemberForm(forms.ModelForm):
    ROLES = (('member','member'), ('admin','admin'),('manager','manager'),('owner','owner'))
    role = forms.TypedChoiceField(
        choices=ROLES,
        widget=forms.RadioSelect,
    )
    teams = forms.MultipleChoiceField(
        widget=forms.CheckboxSelectMultiple,
    )

    class Meta:
        model = OrganizationMember
        fields = ['role']

{我的团队需要在我的领域里增加价值

^{pr2}$

当我用手测试时,self.request.POST

<QueryDict: {'csrfmiddlewaretoken': ['IMkErNAgdNHHcqeisIQclkHvfqwIbR0ycW6ztlvvZ9cufvulmPOlRKQd8PPr4JFe'], 'role': ['admin'], 'teams': ['1', '3']}>

所以,我要单元测试

类OrganizationMemberTest(UserAccountLoginMixin):

def test_change_member_role(self):
    response = self.client.post(
        reverse(
            'organization-member-detail',
            kwargs={'slug': self.organization_obj.name, 'pk': self.user_obj.id}
        ),
            {'role':'admin', 'teams':["1","3"]}
    )
    self.assertEqual(response.status_code, 200)

def test_organization_member_form(self):
    form_data = {'role':'admin', 'teams':['1', '3']}
    form = OrganizationMemberForm(data=form_data)
    self.assertTrue(form.is_valid())

但测试失败,因为表单无效。在

我更改teams数据

// str -> list
data = {'role':'admin', 'teams':['1','3']}

但是表格也是无效的。。在

为什么我的表格无效?谢谢:)

更新

在表格错误Select a valid choice. That choice is not one of the available choices.

当我在get_form中打印(团队)时

[(9, 9)]已打印,因此我更改值1->;9

    def test_organization_member_form(self):
    form_data = {'role':'admin', 'teams':['9']}
    form = OrganizationMemberForm(data=form_data)
    self.assertTrue(form.is_valid(), form_error)

但也有同样的错误。。。在


Tags: testselfformdataadminisdefforms

热门问题