用于字符串列表的Django表单字段

用于字符串列表的Django表单字段,django,string,forms,list,django-forms,Django,String,Forms,List,Django Forms,我需要一个Django表单字段,它将获取字符串列表 我将迭代这个列表,并为每个字符串创建一个新的模型对象 我不能做模型多选字段,因为模型对象在表单提交后才创建,我不能做多选字段,因为我需要接受任意字符串,而不仅仅是一系列预定义的选项 有人知道怎么做吗?只需使用逗号分隔的常规文本字段。在视图中处理表单提交后,根据该字段进行逗号字符串拆分。然后对每个模型进行迭代,创建并保存一个新模型。应该不会太难。我想出了一个解决方案——有点老套,但现在还可以 获取表单数据后,我将列表存储在变量中: event\u

我需要一个Django表单字段,它将获取字符串列表

我将迭代这个列表,并为每个字符串创建一个新的模型对象

我不能做模型多选字段,因为模型对象在表单提交后才创建,我不能做多选字段,因为我需要接受任意字符串,而不仅仅是一系列预定义的选项


有人知道怎么做吗?

只需使用逗号分隔的常规文本字段。在视图中处理表单提交后,根据该字段进行逗号字符串拆分。然后对每个模型进行迭代,创建并保存一个新模型。应该不会太难。

我想出了一个解决方案——有点老套,但现在还可以

获取表单数据后,我将列表存储在变量中:
event\u locations=form\u data.get('event\u locations',None)

然后我将其从表单_数据中删除,这样Django表单就永远不会得到列表:

if event_locations:
   del form_data['event_locations']
我用form_数据实例化我的表单,并单独处理列表:

f = NewEventForm(form_data)
...
for loc in event_locations:
  #create new models here

我意识到这并不能直接解决我所问的问题,因为我们仍然没有一个Django表单字段接受列表,但这是一种将列表传递给接受表单的视图并能够处理它的方法。

我考虑过这一点,但这将是对我API中约定的一个很大突破。