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)
如何让它识别表单代码中的参数?
您需要通过引用表单字段实例来设置初始值__init__.要访问表单字段实例__init__,请在调用之前将其放入super:
self.fields['my_field'].initial=my_arg
Run Code Online (Sandbox Code Playgroud)
并initial=my_arg从您声明的位置删除,my_field因为此时(声明类时)my_arg不在范围内.