我需要在请求时动态设置ModelForm字段的选择。在ModelForm的构造函数中,我添加以下选择:
class ScanSetPlotForm(ModelForm):
class Meta:
model = models.ScanSetPlot
fields = ['scan_set_def_name', 'label_x_name', 'label_y_name']
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['scan_set_def_name'].choices = scan_set_module.get_form_scan_set_def_list()
self.fields['label_x_name'].choices = scan_label.get_form_scan_labels_list()
self.fields['label_y_name'].choices = scan_label.get_form_scan_labels_list()
这适用于表单条目本身-自定义选项显示在列表框中。
但是,从发布的数据创建模型时:
form = forms.ScanSetPlotForm(request.POST)
我收到所有字段的“选择有效选择”错误,因为这些错误是在super()中完成的。 init ,然后才可以添加选择。
非常感谢您的帮助。