Estou desenvolvendo uma aplicação em Django e utilizei os dados da request no form para validar alguns campos. Por exemplo, se o usuário que estiver alterando o form for do grupo "Administrador", ao mudar a senha do usuário ele não precisa informar a senha antiga. Porém, quando vou salvar uma alteração de usuário no admin, ele dá um erro justamente por não estar recebendo o atributo request. Abaixo seguem os códigos do form em que utilizei o clean method para determinados atributos. Alguém sabe como receber os atributos da request no admin? Método init alterado para receber a request: def __init__(self, *args, **kwargs): self.request = kwargs.pop('request', None) super(UserChangeForm, self).__init__(*args, **kwargs) f = self.fields.get('user_permissions', None) if f is not None: f.queryset = f.queryset.select_related('content_type') Método clean para o campo groups: def clean_groups(self): if self.request.user.groups.all() or self.request.user.is_staff: if self.request.user.groups.filter(name="Administrador") or self.request.user.is_staff: return self.cleaned_data['groups'] else: if list(self.cleaned_data['groups']) == list(self.request.user.groups.all()): return self.cleaned_data['groups'] else: raise forms.ValidationError( self.error_messages['non_administrator'], code='non_administrator', ) elif not self.request.user.groups.all() and self.cleaned_data['groups']: raise forms.ValidationError( self.error_messages['non_administrator'], code='non_administrator', ) elif not self.request.user.groups.all() and not self.cleaned_data['groups']: return self.cleaned_data['groups'] Continue reading...