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

时间:2012-11-28 21:44:48

标签: django string forms list django-forms

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

我将遍历此列表并为每个字符串创建一个新的模型对象。

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

任何人都知道怎么做?

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:-1)

我提出了一个解决方案 - 有点hacky,但它现在有用。

抓取表单数据后,我将列表存入变量:
event_locations = form_data.get('event_locations', None)

然后我从form_data中删除它,所以Django Form永远不会得到列表:

if event_locations:
   del form_data['event_locations']

我使用form_data实例化我的表单,并单独处理列表:

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

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