我觉得你可以子类django.forms.widgets.Select
小部件,传递新的参数disabled_choices
其__init__
功能和覆盖create_option
方法是这样的:
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 disabled_choices:
option['attrs']['disabled'] = True
return option
希望这有助于。
非常感谢。这真的是一个很好的帮助。我可以在做一些小改动后使用它:-) –