Я пытаюсь ограничить поле в django ModelForm для определенных ролей пользователя, скажем, Сотрудник, а не для Администратора / Лидеров.Я мог бы отключить поле, которое я хотел.Но он отключен для всех пользователей.
Я попытался получить роль пользователя, упомянув request.role или self.user == "my_role" в методе init.Но не повезло.
Я повторяю этот вопрос, так как я не получил ответов.Похоже, что это не опубликовано должным образом.Мне жаль, если я повторяю это.Дубликат: Как получить текущую вошедшую в систему роль пользователя в init методе django forms.py?
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)
Первый код работает.Но мое поле формы отключено для всех пользовательских ролей.Во втором коде, я думаю, мне следовало импортировать роли.Но я не уверен, как.
Может ли кто-нибудь здесь помочь мне ограничить определенные поля для определенных ролей?