Python __带有附加参数的表单的init__;方法
我正在调用我的表单,带有附加参数“validate: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
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