如何访问表单的clean()方法中的请求对象或任何其他变量?
我试图在request.user中获取表单的clean方法,但是如何访问请求对象?我可以修改clean方法以允许输入变量吗?
回答:
Ber的答案-将其存储在threadlocals
中-是一个非常糟糕的主意。绝对没有理由这样做。
更好的方法是重写表单的__init__
方法以使用额外的关键字参数request
。这会将请求存储在表单中,在需要的地方,你可以从此处以干净的方法访问它。
class MyForm(forms.Form): def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
super(MyForm, self).__init__(*args, **kwargs)
def clean(self):
... access the request object via self.request ...
并且在你看来:
myform = MyForm(request.POST, request=request)
以上是 如何访问表单的clean()方法中的请求对象或任何其他变量? 的全部内容, 来源链接: utcz.com/qa/408898.html