Как получить текущую авторизованную роль пользователя в методе __init__ django forms.py? - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь ограничить поле в django ModelForm для определенных ролей пользователя, скажем, Сотрудник, а не для Администратора / Лидеров. Я мог бы отключить поле, которое я хотел. Но он отключен для всех пользователей.

Я попытался получить роль пользователя, упомянув request.role или self.user == "my_role" в методе init . Но не повезло.

forms.py

def __init__(self, *args, **kwargs):
   super(MyForm, self).__init__(*args, **kwargs)
   if not request.role == "Admin":
       self.fields['formfield'].disabled = True
   else:
       None

Я тоже пробовал,

from django.contrib.auth.models import User
def __init__(self, user, *args, **kwargs):
   self.user = kwargs.pop('user', None)
   super(MyForm, self).__init__(*args, **kwargs)
   self.fields['formfield'].queryset = User.objects.exclude(user=myrole)

Первый код работает. Но мое поле формы отключено для всех пользовательских ролей. Во втором коде, я думаю, мне следовало импортировать роли. Но я не уверен, как.

Может ли кто-нибудь здесь помочь мне ограничить определенные поля для определенных ролей?

...