如何访问表单的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

回到顶部