mun*_*ntu 4 python django initialization django-forms
我正在调用我的表单,附加参数'validate:
form = MyForm(request.POST, request.FILES, validate=True)
我应该如何编写form的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)
Run Code Online (Sandbox Code Playgroud)
该validate=True参数是一个关键字参数,所以它会在显示kwargs字典.(只有位置参数出现在args.)
您可以使用kwargs.pop来尝试获取值kwargs['validate'].如果validate是键kwargs,则kwargs.pop('validate')返回相关值.它还具有'validate'从kwargsdict 中删除密钥的好处,这使得它可以为调用做好准备__init__.
如果validate密钥不在kwargs,则False返回.
def __init__(self, *args, **kwargs):
self.validate = kwargs.pop('validate',False)
super(MyForm, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
如果您不希望在传递'validate'密钥kwargs之前将其移除__init__,只需更改pop为get.
| 归档时间: |
|
| 查看次数: |
2399 次 |
| 最近记录: |