如何将数据发布到包含复选框的Django表单

时间:2018-12-12 20:17:15

标签: django django-forms django-testing django-unittest

在Django中测试注册表格时出现问题。我正在尝试发出POST请求,但无法选择复选框字段。

self.response = self.client.post(url, {
        'username': 'testuser',
        'password': 'testuserpassword',
        'first_name': 'testtt',
        'last_name': 'userrr',
        'image': '',
        'email': 'testuser@gmail.com',
        'gender': 'M',
        'dob': '10/10/1996',
        'hobby': 'Fishing'
    })

这是我的代码行。问题出在爱好上。注册页面有两种形式。个人资料表格和爱好表格。 Profile和Hobby模型之间存在多对多关系。

当我发出上述POST请求时,得到了此消息(选择一个有效的选择):

enter image description here

提前谢谢!

1 个答案:

答案 0 :(得分:1)

根据您发布的屏幕截图,每个“兴趣爱好”复选框的值都对应一个整数-1,2,3,4,等等。这意味着后端希望该兴趣爱好ID以以下形式传输: 。但是,测试不是发送爱好ID,而是发送名称。

将名称更改为相应的ID,例如

self.response = self.client.post(url, {
        ...
        'hobby': 1  # Fishing
    })