将参数传递给Django中的Form

Joh*_*nna 4 django django-forms

我有一个自定义表单,我想传递一个参数.按照这个例子,我想出了以下代码:

class EpisodeCreateForm(forms.Form):
    def __init__(self, *args, **kwargs):
        my_arg = kwargs.pop('my_arg')
        super(EpisodeCreateForm, self).__init__(*args, **kwargs)

    my_field = forms.CharField(initial=my_arg)
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Exception Value: name 'my_arg' is not defined
Run Code Online (Sandbox Code Playgroud)

如何让它识别表单代码中的参数?

san*_*nts 7

您需要通过引用表单字段实例来设置初始值__init__.要访问表单字段实例__init__,请在调用之前将其放入super:

self.fields['my_field'].initial=my_arg
Run Code Online (Sandbox Code Playgroud)

initial=my_arg从您声明的位置删除,my_field因为此时(声明类时)my_arg不在范围内.