1
最後のフィールドが不要なMultiValueFieldを作成しようとしています。私はFalseにrequire_all_fieldsを設定している場合不要なフィールドを持つDjango MultiValueField
ドキュメントによると、その後、私はこのように、必要とされないためにいくつかのフィールドを設定することができます -
class MyMultiWidget(widgets.MultiWidget):
def __init__(self, attrs=None):
_widgets = (
widgets.TextInput(attrs=attrs),
widgets.TextInput(attrs=attrs),
widgets.TextInput(attrs=attrs),
widgets.TextInput(attrs=attrs),
)
super(MyMultiWidget, self).__init__(_widgets, attrs)
def decompress(self, value):
return [None, None, None, None]
class MyMultiValueField(forms.MultiValueField):
widget = MyMultiWidget
def __init__(self, *args, **kwargs):
fields = (
forms.CharField(),
forms.CharField(),
forms.CharField(),
forms.CharField(required=False))
super(MyMultiValueField, self).__init__(
require_all_fields=False, fields=fields, *args, **kwargs)
def compress(self, data_list):
return data_list
しかし、これはこのように見えるが生成HTML: -
<input name="field_0" required="" class="textinput textInput form-control" id="id_field_0" autocomplete="off" type="text">
<input name="field_1" required="" class="textinput textInput form-control" id="id_field_1" type="text">
<input name="field_2" required="" class="textinput textInput form-control" id="id_field_2" type="text">
<input name="field_3" required="" class="textinput textInput form-control" id="id_field_3" type="text">
ご覧のとおり、すべてのフィールドが必要です。私がここで間違って何をしたのか?