在我的基于类的更新/创建视图中,我添加了一些类:
class IndexUpdateView(UpdateView):
fields = '__all__'
model = Index
template_name = 'index_form.html'
def get_success_url(self):
return reverse('IndexList')
def get_form(self, form_class):
form = super(IndexUpdateView, self).get_form(form_class)
form.fields['year'].widget.attrs.update({"class": "form-control tosp"})
form.fields['index'].widget.attrs.update({"class": "form-control tosp"})
return form
添加" get_form"我收到了警告:
RemovedInDjango110Warning:
Index.views.IndexCreateView.get_form
方法必须为其form_class
参数定义默认值。
如何定义默认值?
答案 0 :(得分:10)
自Django 1.8(release notes)以来,A=accumarray(J,M);
Mode(1:size(A))=A;
参数是可选的。警告告诉您必须为form_class指定默认参数,例如
form_class
如果您查看default implementation,则会使用def get_form(self, form_class=MyFormClass):
...
作为默认设置,并在未指定时调用None
。由于您已经在self.get_form_class()
方法中调用了super(),因此您也应该可以使用get_form
作为默认值。
None
在您的特定情况下,您可以定义一个模型表单,用于更改def get_form(self, form_class=None):
form = super(IndexUpdateView, self).get_form(form_class)
...
方法中的小部件attrs。然后,您根本不必覆盖__init__
。
get_form
答案 1 :(得分:1)
将属性form_class
添加到您的班级。
class IndexCreateView(UpdateView):
form_class = MyFormClass