Python 如何自定义表单属性。在Django中选择选项
我正在处理一个定制需求,该需求要求定制选择选项属性。我的下拉列表将显示选项列表,其中一些选项应根据特定条件显示为禁用 我已尝试通过传递Python 如何自定义表单属性。在Django中选择选项,python,django,select,widget,Python,Django,Select,Widget,我正在处理一个定制需求,该需求要求定制选择选项属性。我的下拉列表将显示选项列表,其中一些选项应根据特定条件显示为禁用 我已尝试通过传递disabled=disabled来自定义Select小部件属性。但这会禁用整个下拉列表。通过查看django 1.11.5的代码,似乎Select上应用的属性将应用于其选项 有人能建议如何实现这一功能吗 谢谢你我认为你可以对django.forms.widgets进行子分类。选择widget,将新参数禁用的\u选项传递给它的\u初始化\u函数,并覆盖创建\u选
disabled=disabled
来自定义Select小部件属性。但这会禁用整个下拉列表。通过查看django 1.11.5的代码,似乎Select上应用的属性将应用于其选项
有人能建议如何实现这一功能吗
谢谢你我认为你可以对django.forms.widgets进行子分类。选择
widget,将新参数禁用的\u选项
传递给它的\u初始化\u
函数,并覆盖创建\u选项
方法,如下所示:
class MySelect(Select):
def __init__(self, attrs=None, choices=(), disabled_choices=()):
super(Select, self).__init__(attrs, choices=choices)
# disabled_choices is a list of disabled values
self.disabled_choices = disabled_choices
def create_option(self, name, value, label, selected, index, subindex=None, attrs=None):
option = super(Select, self).create_option(name, value, label, selected, index, subindex, attrs)
if value in self.disabled_choices:
option['attrs']['disabled'] = True
return option
希望这能有所帮助。非常感谢。这真是一个很大的帮助。在做了一些小改动之后,我可以让它工作:-)我在这里使用一个模型表单定义了一个完整的例子:有一个通用的解决方案适用于Django 2.+并允许在选项中添加标题和其他内容,请参阅