我正在尝试测试SplitArrayField,
class MYForm(forms.Form):
places = SplitArrayField(forms.IntegerField(), size=4)
现在,当我这样做时:
form = MYForm({'places': [1,2,14,3]})
form.is_valid()
返回False
form.cleaned_data
是{}
我检查了官方文档,无法找到一个例子。请修理我 https://docs.djangoproject.com/es/1.9/ref/contrib/postgres/forms/#django.contrib.postgres.forms.SplitArrayField
答案 0 :(得分:2)
传递SplitArrayField
数据的方式如下:
form = MYForm({
'places_0': '1',
'places_1': '2',
'places_2': '14',
'places_3': '3',
})
form.is_valid() # True
form.cleaned_data # {'places': [1, 2, 14, 3]}
字段名称需要“拆分”,并且需要附加索引。字段名称的一般格式为'{field_name}_{index}'
。
如果您使用SimpleArrayField
,输入数据将会是这样的:
class MYForm(forms.Form):
places = SimpleArrayField(forms.IntegerField())
form = MYForm({
'places': '1,2,14,3'
})
form.is_valid() # True
form.cleaned_data # {'places': [1, 2, 14, 3]}