работает лучше
Класс OptionAttr (forms.Select):
def __init__( self, *args, **kwargs ):
self.src = kwargs.pop( 'attributes', { } )
super().__init__( *args, **kwargs )
def create_option( self, name, value, label, selected, index, subindex = None, attrs = None ):
splitedLabel = label.split(",")
options = super( OptionAttr, self ).create_option( name, value, label, selected, index, subindex = None, attrs = None )
for k, v in self.src.items():
if v != True:
options[ 'attrs' ][ k ] = v
else:
options[ 'attrs' ][ k ] = splitedLabel[1:]; options[ 'label' ] = str(splitedLabel[0])
return options
class MonitoringSpot_InLine_FORM( forms.ModelForm ):
class Meta:
model = MonitoringSpotClass
fields = [ 'monitoringSpot_NODE_monitoringAreaType', ]
widgets = {
'monitoringSpot_NODE_monitoringAreaType': OptionAttr( attributes = { 'extra': True } )
}
Если вы установите True в качестве дополнительного атрибута, этот код разделит все данные из LABEL на дополнительный тег. Или вы можете установить собственное значение.