0
我要么失去一些非常简单的东西(而我的Google-Fu缺乏),要么我没有办法跟踪。你打电话!如何测试Django formset提交
我想编写一个测试,以在视图中对一个表单进行POST操作。
# get the modelformset from the view
response = self.client.get("/myview")
formset = response.context['formset']
# change the values in the underlying form
for form in enumerate(formset):
form.instance['something'] = i
# how do I post the formset back to myview? this does NOT work...
response = self.client.post("/myview", formset, follow=True)
AttributeError: 'MyFormSet' object has no attribute 'items'
的错误使得完整意义上的,因为我需要通过一本字典作为第二个参数,而不是一个表单集。我希望在Formset上有一些方法可以给我适当的字典(包括管理表单信息),但我无法在我的生活中找到它。
UPDATE:
我把它做这个工作:
data = {}
for field in formset.management_form:
data["-".join((formset.management_form.prefix, field.name))] = field.value()
for form in formset:
for field in form:
data["-".join((form.prefix, field.name))] = field.value()
self.client.post(reverse("/myview"), data, follow=True)
,但我一直在想,如果有一个内置的表单集的方法来做到这一点,我只是不明白它....