一尘不染

django:如何在ModelForm中访问当前请求用户?

django

在执行ModelForm时,我想根据当前用户是否为超级用户执行不同类型的验证检查。如何访问当前的请求用户?


阅读 420

收藏
2020-04-01

共1个答案

一尘不染

您可以将用户对象作为额外的参数传递给表单构造函数。

例如

f = MyForm(user=request.user)

构造函数将如下所示:

class MyForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
         self.user = kwargs.pop('user',None)
         super(MyForm, self).__init__(*args, **kwargs)

然后根据需要在clean_XX表单中使用user

2020-04-01