Как вводить данные в формы django в виде списка?
Мне нужно передать эти данные в виде python list
в django, а не в виде строки. Как создать список, просто для ввода данных, разделенных запятыми?
class CreateForm(forms.Form):
list = forms.CharField(label='Input names (separate with commas): ')
Вы можете определить свое собственное поле, чтобы сделать его полем, разделенным запятыми. Тогда это будет выглядеть так:
# app_name/fields.py
class CommaSeparatedField(forms.CharField):
def to_python(self, value):
if value in self.empty_values:
return self.empty_value
value = str(value).split(',')
if self.strip:
value = [s.strip() for s in value]
return value
def prepare_value(self, value):
if value is None:
return None
return ', '.join([str(s) for s in value])
и затем используйте его в форме с:
# app_name/forms.py
from app_name.fields import CommaSeparatedField
class CreateForm(forms.Form):
list = CommaSeparatedField(label='Input names (separate with commas): ')
Django вернет список строк в form.cleaned_data
в случае, если форма действительна.