Python: 如何在 Django Form 中使用构造函数 class?
Python: how to use constructor with Django Form class?
我想在初始化表单时传递参数class。我尝试了以下方法:
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)
但是,正文字段中使用的 default_text
变量超出范围。我哪里做错了?
您只能在 __init__
方法内部使用 default_text
。要访问 body
字段,请使用 self.fields
字典:
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
我想在初始化表单时传递参数class。我尝试了以下方法:
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)
但是,正文字段中使用的 default_text
变量超出范围。我哪里做错了?
您只能在 __init__
方法内部使用 default_text
。要访问 body
字段,请使用 self.fields
字典:
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