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