了解UpdateView以更改表单和FormWidg

2024-07-03 07:02:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我还是不明白更新视图。它从哪里取表格? 它具有模型中声明的字段,但不使用中定义的形式表单.py. 在

不过,我还是遵循了以下给出的答案:

How does one use a custom widget with a generic UpdateView without having to redefine the entire form?

在我的例子中,我在模型.py并在表单中使用单选按钮。在

所以UpdateView的作用是给我一个IntegerField而不是ChoiceField。即使我分配了RadioSelect小部件或选择字段:

观点:

class UpdateEinflussideen(UpdateView):

    model = Einflussideen
    EINFLUSS = [(10,'hoch'),(4,'mittel'),(1,'gering')]
    form_class = forms.models.modelform_factory(Einflussideen,
                    widgets={'einfluss': forms.ChoiceField(
                        choices=EINFLUSS, widget=forms.RadioSelect())},
                    )
    template_name = 'verbrauchererfassung/update_einflussideen.html'
    success_url = reverse_lazy('verbraucher')

模型:

^{pr2}$

Tags: py模型form视图声明表单formswidget
1条回答
网友
1楼 · 发布于 2024-07-03 07:02:59

python中的变量区分大小写。将属性form_Class更改为form_class。另外,widgets参数应该包含一个dict,其值为Widget实例:

form_class = forms.models.modelform_factory(Einflussideen,
                 widgets={'einfluss': forms.RadioSelect(choices=EINFLUSS)})

相关问题 更多 >