Django ModelMultipleChoiceField和CheckboxSelectMultiple删除值

时间:2017-01-13 15:50:12

标签: django django-forms

我有一张表格:

somemodels = forms.ModelMultipleChoiceField(queryset=SomeModel.objects.none, widget=forms.CheckboxSelectMultiple, required=False)

我使用__init__函数设置了我的查询集,并且甚至可以在页面加载时将现有连接提供给我的列表(现有对象被标记为已选中)。

    def __init__(self, *args, **kwargs):
       qs = kwargs.pop('SomeModel')
       inital_object = kwargs.pop('someothermodel')
       super(SelectDatesForm, self).__init__(*args, **kwargs)
       self.fields['timeframes'].queryset = qs
       selected_items = qs.filter(someothermodels=inital_object) #manytomany relationship
       self.fields['somemodels'].initial = selected_timframes

我得到的问题是以下事实的组合:a)HTML仅提交已检查输入的数据; b)django表单从" cleaning_data"中删除所有已存在的对象。

当我提交表单时,我得到的表单的 cleaning_data 列表只包含新选择的值,而不是构建页面时已选择的值。

要删除现有的(例如,如果用户取消选中最初选中的复选框),我需要知道a)所有选定值的总列表,或b)未选中的值列表。

在没有真正浏览原始POST数据的情况下,是否有顺畅的方法?

0 个答案:

没有答案