【发布时间】:2019-10-20 05:31:18
【问题描述】:
我有一个表单,用户将 CSV 上传到其中以进行数据处理。我目前正在尝试测试form.is_valid() 方法。但是,我正在关注 Django 文档,并且表单仍然返回该字段需要值的错误。有什么想法吗?
文档
documentation 显示以下示例 -
>>> c = Client()
>>> with open('wishlist.doc') as fp:
... c.post('/customers/wishes/', {'name': 'fred', 'attachment': fp})
测试
class TestImportCSVForm(TestCase):
def test_form_valid(self):
with open('fake.csv', 'r', newline='') as csvfile:
form_data = {
'csv_file': csvfile,
}
form = ImportCSVForm(data=form_data)
self.assertTrue(form.is_valid())
表格
class ImportCSVForm(forms.Form):
""" Form for uploading CSVs """
csv_file = forms.FileField(
label=_("CSV File"),
help_text=_("Upload a CSV"))
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.layout = Layout(
'csv_file',
HTML("""<hr>"""),
ButtonHolder(
Submit('submit', 'Submit', css_class='btn btn-primary')
)
)
我运行测试时的错误
(Pdb) form.errors
{'csv_file': ['This field is required.']}
【问题讨论】:
标签: django django-forms django-testing