Я пытаюсь ограничить поле в 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)
Первый код работает. Но мое поле формы отключено для всех пользовательских ролей. Во втором коде, я думаю, мне следовало импортировать роли. Но я не уверен, как.
Может ли кто-нибудь здесь помочь мне ограничить определенные поля для определенных ролей?