Alle,django - Hinzufügen von Attributen zu Feldern eines MultiValueField/MultiWidget
ich es geschafft haben, zu bekommen MultiValueField und MultiValueWidget arbeiten. Aber abgesehen von "Auswahlen" kann ich anscheinend keine Attribute (wie "Label" oder "Initial") zu den Unterfeldern hinzufügen, aus denen das MultiValueField besteht.
Hier ist meine (vereinfacht) Code:
class MyMultiWidget(django.forms.widgets.MultiWidget):
def __init__(self,*args,**kwargs):
myChoices = kwargs.pop("choices",[])
widgets = (
django.forms.fields.TextInput(),
django.forms.fields.TextInput(),
django.forms.fields.Select(choices=myChoices),
)
super(MyMultiWidget, self).__init__(widgets,*args,**kwargs)
class MyMultiValueField(django.forms.fields.MultiValueField):
widget = MyMultiWidget
def __init__(self,*args,**kwargs):
myLabel = "my label"
myInitial = "my initial value"
myChoices = [("a","a"),("b","b")]
fields = (
django.forms.fields.CharField(label=myLabel),
django.forms.fields.CharField(initial=myInitial),
django.forms.fields.ChoiceField(choices=myChoices),
)
super(MyMultiValueField,self).__init__(fields,*args,**kwargs)
self.widget=MyMultiWidget(choices=myChoices)
class MyField(models.Field):
def formfield(self,*args,**kwargs):
return MyMultiValueField()
class MyModel(django.models.Model):
myField = MyField(blank=True)
MyForm = modelform_factory(MyModel)
Die "myField" Feld MyModel ist fast richtig in MyForm gemacht; Es zeigt drei Widgets: zwei TextInputs und ein Select. Letzteres beschränkt sich auf die entsprechenden Auswahlmöglichkeiten. Aber die ersten beiden haben weder ihre Bezeichnung noch ihren Anfangswert.
Irgendwelche Vorschläge, was ich falsch mache?
Danke.