django形式动态选择框

时间:2011-11-09 20:58:54

标签: python django

我不明白发生了什么,我的形式是 mylist = forms.MultipleChoiceField(required=False, widget=forms.SelectMultiple, label='MyList',help_text = "help")
然后我在页面上添加了一些动态值的jquery,但是当我提交表单时,我将form.is_valid变为false“对象没有属性'cleaning_data'”

这似乎只发生在我在选择框中动态添加值之后,如果我在提交之前选择了一些。如果我没有选择值,则cleaning_data [“mylist”]为空数组。

我该如何解决这个问题?基本上我想在提交后从django表单中访问我动态添加的值列表。

edit
-----
    if request.method == 'POST':
        form = MyForm(request.POST)
        action = request.POST['submit']

        if action == 'Update':
                mylist = form.cleaned_data['mylist']
    else:
        form = MyForm()

修改

def clean_mylist(self):
    data = self.cleaned_data('mylist')
    return data


def clean(self):
    cleaned_data = self.cleaned_data
    return cleaned_data

1 个答案:

答案 0 :(得分:1)

当您提交表单MultipleChoiseField时,验证所有选定项目都属于MultipleChoiseField的选择参数。如果您以后动态添加字段,则它们自然不在选择集中。阅读更多here

作为解决方案,您可以考虑将CharFieldSelectMultiple小部件一起使用并覆盖clean方法。