试图建立使用蟒蛇联合操作的查询集 -
class PrimaryCategoryForm(forms.ModelForm):
set_1 = PrimaryAdCategoryType.objects.filter(pk=2)
set_2 = PrimaryAdCategoryType.objects.filter(pk=3)
qs = set_1 | set_2
primarycategorytype = forms.ModelMultipleChoiceField(queryset=qs,
required=True,
widget=forms.CheckboxSelectMultiple)
的|
运营商正在创造一个新的组与所有项目从set_1
和所有项目set_2
。
UPDATE
虽然上面的方法将支持创建复杂的集合。马丁的意见建议可能是足够的,如果你只是想挑几个PK的 -
class PrimaryCategoryForm(forms.ModelForm):
qs=PrimaryAdCategoryType.objects.filter(pk__in=[2,3])
primarycategorytype = forms.ModelMultipleChoiceField(queryset=qs,
required=True,
widget=forms.CheckboxSelectMultiple)
EDITABLE复选框
我认为,当涉及到使复选框可编辑的,预先设定你可能需要求助于的javascript 。也许add data-attributes to the widget,然后创建一个基于数据属性操纵复选框的jquery函数。喜欢的东西 -
attrs = {'data-selected-value': 2, 'data-readonly-value': 2}
primarycateogrytype = forms.ModelMultipleChoiceField(attrs=attrs)
然后在JavaScript -
var readonlyCheckboxValue = $('#your_mulliplecheckboxselect).data('selected-value');
var $readonlyCheckbox = $('#your_multiplecheckboxselect .input[value=readonlyCheckboxValue]');
$readonlyCheckbox.attr('readonly', true);
我没有测试此代码,但它应该给你什么,我建议的想法。如果您还没有遇到过,请检查data-attribute - 这非常棒。
queryset = PrimaryAdCategoryType.objects.filter(pk__in = [2,3])? – Martin