Django:如何使用SplitArrayField?

时间:2016-01-29 17:50:33

标签: django forms postgresql

我正在尝试测试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

1 个答案:

答案 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]}