Кастомные виджет и поле нужны
from django import forms
from django.utils.datastructures import MultiValueDict, MergeDict
class Widget(forms.widgets.Widget):
def value_from_datadict(self, data, files, name):
if isinstance(data, (MultiValueDict, MergeDict)):
return data.getlist(name)
return data.get(name, None)
def render(self, name, value, attrs=None):
pass # TODO: render widget
class Field(forms.Field):
def to_python(self, value):
if not value: return []
return filter(None, value)
Это самая примитивная реализация. Без дополнительных проверок и без рендера виджета