是否可以在Django multiselect小部件中禁用一些选择选项?
我可以在视图中执行以下操作:
id_roles = (10, 2, 1, 3, 11)
self.fields['role'].queryset = Role.objects.filter(id__in=id_roles)
但是在保存列表以外的值的绑定表单时,这将引发错误。我可以在那里禁用所有角色吗?
您已经更新了查询集,但您也可以更新小部件选择:
choices = [(x, y) for x, y in self.fields['role'].widget.choices if x in id_roles]
self.fields['role'].widget.choices = choices