禁用多选Django小部件中的选项

问题描述 投票:0回答:1

是否可以在Django multiselect小部件中禁用一些选择选项?

我可以在视图中执行以下操作:

        id_roles = (10, 2, 1, 3, 11)
        self.fields['role'].queryset = Role.objects.filter(id__in=id_roles)

但是在保存列表以外的值的绑定表单时,这将引发错误。我可以在那里禁用所有角色吗?

django django-forms django-views
1个回答
0
投票

您已经更新了查询集,但您也可以更新小部件选择:

choices = [(x, y) for x, y in self.fields['role'].widget.choices if x in id_roles]
self.fields['role'].widget.choices = choices
© www.soinside.com 2019 - 2024. All rights reserved.