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)
,但我一直在想,如果有一個內置的表單集的方法來做到這一點,我只是不明白它....