如何使用Django的unittesting客户机填写内联表单?在
在我的测试中,我试过:
response = client.get('/admin/myapp/prospect/add/')
initial = response.context['adminform'].form.initial
initial['name'] = 'Jon Doe'
response = client.post('/admin/myapp/prospect/add/', initial, follow=True)
但是这会抛出一个“ManagementForm data is missing”错误,因为我的ModelAdmin有一些内联表单,form.initial
对象似乎不包括这些内联行的模板字段,如*-INITIAL_FORMS
、*-MAX_NUM_FORMS
和{
有没有办法解决这个问题,或者Django的unittest框架不支持测试内联表单?在
修改应用程序的管理内联线以包含额外的字段。这样你就可以得到更多:
使用硒。通过这种方式,您可以模拟整个浏览器体验,而代价是测试运行时间更长。您将需要单击“addnewinline”链接,我无法很好地单击它,最后使用了一个很长的xpath。
在Python客户机中模拟添加新内联线的最佳方法可能是在您选择的Django web测试客户机中克隆字段,就像Django在客户端做它一样,然后允许它们在服务器端。我想这需要在写这个答案的时候写一些新的代码。
相关问题 更多 >
编程相关推荐