如何在django Forms.py的__init__方法中获取当前登录的用户角色?

时间:2019-05-13 10:36:55

标签: django-forms

我正在尝试将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对于所有用户角色都被禁用。我认为在第二代码中,我应该导入角色。但我不确定如何。

这里有人可以帮我限制特定角色的特定领域吗?

0 个答案:

没有答案