我正在尝试将django ModelForm中的字段限制为特定的用户角色,例如Employee,而不是Admin / Leads。我可以禁用我想要的字段。但是,所有用户均禁用该功能。
我试图通过提及来获得用户角色 init 方法中的request.role或self.user ==“ my_role”。但没有运气。
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)
第一个代码有效。但是我的formfield对于所有用户角色都被禁用。我认为在第二代码中,我应该导入角色。但我不确定如何。
这里有人可以帮我限制特定角色的特定领域吗?