Python:如何在Django表单类中使用构造函数?

Python:如何在Django表单类中使用构造函数?,python,django,constructor,django-forms,Python,Django,Constructor,Django Forms,我想在初始化表单类时传递参数。我尝试了以下方法: class BlogForm(forms.Form): def __init__(self, *args,**kwargs): self.default_text = kwargs.pop('text') super(BlogForm, self).__init__(*args, **kwargs) body = forms.CharField(widget=SummernoteWidget(),

我想在初始化表单类时传递参数。我尝试了以下方法:

class BlogForm(forms.Form):
    def __init__(self, *args,**kwargs):
        self.default_text = kwargs.pop('text')
        super(BlogForm, self).__init__(*args, **kwargs)
    body = forms.CharField(widget=SummernoteWidget(), initial = default_text)

但是,body字段中使用的
default_text
变量超出范围。我哪里做错了?

您只能在
\uuuu init\uuu
方法中使用
默认\u文本。要访问
body
字段,请使用
self.fields
dict:

class BlogForm(forms.Form):

    body = forms.CharField(widget=SummernoteWidget())

    def __init__(self, *args,**kwargs):
        self.default_text = kwargs.pop('text')
        super(BlogForm, self).__init__(*args, **kwargs)
        self.fields['body'].initial = self.default_text

只能在
\uuuu init\uuu
方法中使用
默认\u文本。要访问
body
字段,请使用
self.fields
dict:

class BlogForm(forms.Form):

    body = forms.CharField(widget=SummernoteWidget())

    def __init__(self, *args,**kwargs):
        self.default_text = kwargs.pop('text')
        super(BlogForm, self).__init__(*args, **kwargs)
        self.fields['body'].initial = self.default_text

它给出了一个错误:AttributeError:'BlogForm'对象没有属性'fields'。每个初始化的表单都有
字段
属性。在调用
super(BlogForm,self)之前,您似乎试图访问
字段。看看我的代码,我在调用
\uuuu init\uuuu
之后分配
初始值。在定义构造函数之前,body字段似乎采用了语句中声明的初始值,即initial的值为null。我根据我的答案测试了代码,它工作正常。初始数据按预期设置。如何实例化表单?它给出了一个错误:AttributeError:“BlogForm”对象没有属性“fields”。每个初始化的表单都有
fields
属性。在调用
super(BlogForm,self)之前,您似乎试图访问
字段。看看我的代码,我在调用
\uuuu init\uuuu
之后分配
初始值。在定义构造函数之前,body字段似乎采用了语句中声明的初始值,即initial的值为null。我根据我的答案测试了代码,它工作正常。初始数据按预期设置。如何实例化表单?