Django动态modelForm选择不起作用

时间:2019-06-10 14:48:57

标签: python django

我需要在请求时动态设置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 ,然后才可以添加选择。

非常感谢您的帮助。

0 个答案:

没有答案