【问题标题】:Testing formsets in Django在 Django 中测试表单集
【发布时间】:2015-10-23 09:14:32
【问题描述】:
如何使用客户端self.client.post('/url/', {}) 在单元测试中传递表单集的值?我收到一个验证错误,提示 management_form 已被篡改。
提前致谢!
【问题讨论】:
标签:
django
forms
unit-testing
formsets
【解决方案1】:
这是一个获取用户技能的示例表单集
class SkillForm(forms.Form):
level_id = forms.ChoiceField(choices=LEVEL_CHOICES, required = True)
txt_skills = forms.CharField(max_length=250, required = True)
SkillFormset = formset_factory(SkillForm,extra=1, max_num=10)
这是测试用例的示例 POST 数据。
self.post_data.update({
'skillform-0-level_id': '2',
'skillform-0-txt_skills': 'Python',
'skillform-1-level_id': '3',
'skillform-1-txt_skills': 'Java',
'skillform-TOTAL_FORMS': '2',
'skillform-INITIAL_FORMS': '1',
'skillform-MAX_NUM_FORMS': '10'
})