2016-01-29 2 views
1

Я пытаюсь проверить SplitArrayField,Django: Как использовать 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

ответ

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