Django - 替换列表中字段的表单小部件
Django - replace form widget for fields in list
我正在尝试将小部件更改为名称中包含字符串的表单中的字段,我正在尝试执行如下操作:
class CI_tableForm(ModelForm):
class Meta:
model = CI_table
fields = report_query_values
for field in report_query_values:
if "_id" in field:
field = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple)
不确定是否可行。
目前它没有错误,但也没有更改小部件。
谢谢,
艾萨克
您应该在 __init__
构造函数中执行此操作:
class CI_tableForm(ModelForm):
class Meta:
model = CI_table
fields = report_query_values
def __init__(self, *args, **kwargs):
super(CI_tableForm, self).__init__(*args, **kwargs)
for field in report_query_values:
if "_id" in field:
choices = self.fields[field].widget.choices
self.fields[field].widget = forms.CheckboxSelectMultiple(
choices=choices)
我正在尝试将小部件更改为名称中包含字符串的表单中的字段,我正在尝试执行如下操作:
class CI_tableForm(ModelForm):
class Meta:
model = CI_table
fields = report_query_values
for field in report_query_values:
if "_id" in field:
field = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple)
不确定是否可行。 目前它没有错误,但也没有更改小部件。
谢谢, 艾萨克
您应该在 __init__
构造函数中执行此操作:
class CI_tableForm(ModelForm):
class Meta:
model = CI_table
fields = report_query_values
def __init__(self, *args, **kwargs):
super(CI_tableForm, self).__init__(*args, **kwargs)
for field in report_query_values:
if "_id" in field:
choices = self.fields[field].widget.choices
self.fields[field].widget = forms.CheckboxSelectMultiple(
choices=choices)