使用Django中具有多个值的select字段预填充表单

时间:2012-05-23 03:38:51

标签: django forms select populate

我尝试了很多东西,但我仍然不知道如何在Django中填充select field。以下示例添加了一个带有name='tags'属性的选择字段的字典。

data = {}
for tag in tags:
  data['tags'] = tag.name
form = Form(initial=data)

正如预期的那样,循环会覆盖键'标签',因此它只占优势的最后一个值(实际上,表单显示最后一个值)。我希望通过列表可能会有效:

data = {}
l = []
for tag in tags:
  l.append(tag.name)
data['tags'] = l
form = Form(initial=data)

但在这种情况下,它只是不起作用。

你可以想象,我正在使用类似的表格:

class NewTopicForm(forms.Form):
  ... some fields
  tags = ChoiceField(
            widget=forms.Select(), 
            choices=SOME_CHOICES
         )

当我需要添加多个值时,使用select字段填充表单的正确方法是什么?。

谢谢!

更新

我按照此post尝试了以下内容:

data = {'tags': tags.values_list('name',flat=True) }

不幸的是,它不起作用。我错过了什么吗?。

1 个答案:

答案 0 :(得分:1)

如果您希望初始值为列表,则似乎需要MultipleChoiceField