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。我根据我的答案测试了代码,它工作正常。初始数据按预期设置。如何实例化表单?