Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python __带有附加参数的表单的init__;方法_Python_Django_Django Forms_Initialization - Fatal编程技术网

Python __带有附加参数的表单的init__;方法

Python __带有附加参数的表单的init__;方法,python,django,django-forms,initialization,Python,Django,Django Forms,Initialization,我正在调用我的表单,带有附加参数“validate: form=MyForm(request.POST,request.FILES,validate=True) 我应该如何编写表单的init方法来访问表单主体中的该参数(例如在_clean方法中)?这就是我想到的: def __init__(self, *args, **kwargs): try: validate = args['validate'] except: pass

我正在调用我的表单,带有附加参数“validate:

form=MyForm(request.POST,request.FILES,validate=True)

我应该如何编写表单的init方法来访问表单主体中的该参数(例如在_clean方法中)?这就是我想到的:

def __init__(self, *args, **kwargs):
    try:
        validate = args['validate']
    except:
        pass           
    if not validate:
        self.validate = False
    elif:
        self.validate = True
    super(MyForm, self).__init__(*args, **kwargs) 

validate=True
参数是一个关键字参数,因此它将显示在
kwargs
dict中。(只有位置参数显示在
args
中)

您可以使用尝试获取
kwargs['validate']
的值。 如果
validate
kwargs
中的一个键,则
kwargs.pop('validate')
将返回相关值。它还具有从
kwargs
dict中删除
'validate'
键的好处,这使得它可以为调用
\uuuu init\uu
做好准备

如果
validate
键不在
kwargs
中,则返回
False

def __init__(self, *args, **kwargs):
    self.validate = kwargs.pop('validate',False)
    super(MyForm, self).__init__(*args, **kwargs)
如果在将
键传递给
\uuuu init\uuuu
之前,不希望从
kwargs
中删除
'validate'
键,只需将
pop
更改为
get