Я пытаюсь получить значение пользователя в запросе на получение вызова API, чтобы я мог сделать доступным список объектов, для просмотра которых у пользователя есть разрешение.
У меня есть пользовательский объект в DRF как:
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(max_length=255, unique=True)
name = models.CharField(max_length=255)
userType = models.IntegerField(default=0)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
objects = UserManager()
USERNAME_FIELD = 'email'
def __str__(self):
return self.name
Мне нужно получить тип пользователя здесь в запросе на получение здесь:
class getAppCPHList(APIView):
authentication_classes = (authentication.BasicAuthentication,)
permission_classes = (permissions.IsAuthenticated)
def get(self, request, *args, **kwargs):
param = {"search": "%*(^&^()*&^%^)^$&$NewModel", "limit":35000}
data = requests.get(url = settings.NODEIP, params = param ).json()
#Is user type is is_staff or not ?
newArray = []
if not data:
newArray = []
else:
for x in data:
if x['data'].get('allSearch','') == "%*(^&^()*&^%^)^$&$NewModel":
if x['data']['assetDet'].get('cphNumber','') != '':
if x['data']['assetDet'].get('cphNumber','') not in newArray:
newArray.append(x['data']['assetDet'].get('cphNumber',''))
return Response(newArray)
Я пытался получить доступ через
usernames = self.request.user
Но я получаю сообщение об ошибке
Объект BasePermissionMetaclass не является итерируемым
Я не могу понять, как получить поле? Любые предложения будут очень полезны! Спасибо!
Похоже на опечатку.
Изменять
permission_classes = (permissions.IsAuthenticated)
к
permission_classes = (permissions.IsAuthenticated,) # put a comma
^^^^^