如何将django表单中的数据作为列表输入?
How to input data in django forms as a list?
我需要将此数据作为 python list
转发给 django,而不是作为字符串。如何创建列表,只输入以逗号分隔的数据?
class CreateForm(forms.Form):
list = forms.CharField(label='Input names (separate with commas): ')
您可以定义自己的字段,使其成为逗号分隔的字段。这看起来像:
# <i>app_name</i>/fields.py
class CommaSeparatedField(forms.CharField):
def <strong>to_python</strong>(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 <strong>prepare_value</strong>(self, value):
if value is None:
return None
return ', '.join([str(s) for s in value])
然后以以下形式使用它:
# <em>app_name</em>/forms.py
from <em>app_name</em>.fields import CommaSeparatedField
class CreateForm(forms.Form):
list = <strong>CommaSeparatedField(</strong>label='Input names (separate with commas): '<strong>)</strong>
如果表单有效,Django 将 return form.cleaned_data
中的字符串列表。
我需要将此数据作为 python list
转发给 django,而不是作为字符串。如何创建列表,只输入以逗号分隔的数据?
class CreateForm(forms.Form):
list = forms.CharField(label='Input names (separate with commas): ')
您可以定义自己的字段,使其成为逗号分隔的字段。这看起来像:
# <i>app_name</i>/fields.py
class CommaSeparatedField(forms.CharField):
def <strong>to_python</strong>(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 <strong>prepare_value</strong>(self, value):
if value is None:
return None
return ', '.join([str(s) for s in value])
然后以以下形式使用它:
# <em>app_name</em>/forms.py
from <em>app_name</em>.fields import CommaSeparatedField
class CreateForm(forms.Form):
list = <strong>CommaSeparatedField(</strong>label='Input names (separate with commas): '<strong>)</strong>
如果表单有效,Django 将 return form.cleaned_data
中的字符串列表。