Я пытаюсь проверить разрешения для некоторых запросов API.Я уже установил auth users и таблицы auth_user_user_permissions и auth_permissions, например view_company
add_company
bla bla, но проблема не в этом.Проблема в том, что когда я пытаюсь использовать декоратор, который
@permission_required('API.view_company', raise_exception=True)
мне сказал
AttributeError: 'CompanyDetailView' object has no attribute 'user'
Скорее всего, он ищет пользователя, потому что он собирается проверить user_permission, доступен ли онпросматривать компании или нет, но мое представление, которое я объявил в urls.py (путь ('companies //', CompanyDetailView.as_view ()),) не имеет пользовательского объекта, поэтому сообщение об ошибке вернуло атрибут error, как я могу решить эту проблему,Большое спасибо
Я пытался установить пример пользователя в классе представления, в начале это работало, потому что представление искал объект пользователя, я не могу использовать этот способ, потому что в каждом запросе есть разные пользователи
import rest_framework
from rest_framework import status
from django.contrib.auth.models import User
from rest_framework.views import APIView
from rest_framework.response import Response
from django.contrib.auth.decorators import permission_required
class CompanyDetailView(APIView):
@permission_required('api.view_company', raise_exception=True)
def get(self, request, id):
try:
request_data = {}
request_data['request_method'] = request.method
request_data['id'] = id
companies = Company.objects.get(id=id)
status = rest_framework.status.HTTP_200_OK
return Response(companies, status)
бла бла бла
строка URL была =
path('companies/<int:id>/', CompanyDetailView.as_view()),
мое сообщение об ошибке было: AttributeError: 'CompanyDetailView' object has no attribute 'user'
когда я отлаживаю и вижу request.user.has_perm('view_company')
возвращеноложь, но все же API дает ответы, предполагается, что вы не можете просматривать компании