在Django表单上,我让我的用户上传了一个头像。我有一个clean_avatar
方法与forms.py中的相关ModelForm
相关联,我在上传之前对提交的头像进行了一些处理。如何使用此self.request.user
方法访问clean_avatar
?我试图超越__init__
的{{1}}但是蠢蠢欲动。
对于有兴趣的人,我想在ModelForm
方法中访问self.request.user
,以检查正在上传的现在的头像是否与用户提交的头像相同< em>就在此之前。这将有助于我在重新提交表单的情况下节省带宽(我已经检查过;在我的应用程序中,重新提交导致化身也被重新提交,并重新处理)。
clean_avatar方法目前如下所示:
clean_avatar
答案 0 :(得分:1)
我认为将它作为额外参数传递给您的表单会更好,以便您可以在整个表单中使用它:
class FooForm(models.ModelForm):
def __init__(self, *args, **kwargs):
# you take the user out of kwargs and store it as a class attribute
self.user = kwargs.pop('user', None)
super(FooForm, self).__init__(*args, **kwargs)
def clean_avatar(self):
current_user = self.user
# use current_user
你的views.py方法:
def view(request):
foo_form = FooForm(request.POST or None, user=request.user)