В наборе представлений бронирования я должен вывести список всех бронирований, когда администратор входит в систему, а обычный пользователь может видеть объекты, созданные этим пользователем, используя id =pk.
приведены views.py и models.py
Вот в моих "class BookViewSet(viewsets.ModelViewSet)" и "class BookingRetrtieveUpdateDestroyAPIView(generics.RetrieveUpdateDestroyAPIView)" Мне нужно создать функциональность, указанную в постановке задачи.
Заявление о проблеме
for (class BookViewSet(viewsets.ModelViewSet)))
.
(a) Если администратор вошел в систему отображает все бронирования всех пользователей и может создавать бронирования.
(b) Если обычный пользователь вошел в систему отображает записи, созданные этим пользователем, и может также создать пользователя.
(c) во время тестирования API как использовать токен simple-jwt для проверки пользователя, поскольку я добавил разрешение для контроля доступа.for (class BookingRetrtieveUpdateDestroyAPIView(generics.RetrieveUpdateDestroyAPIView)))
(a) если администратор вошел в систему функциональность get/put/delete для каждого бронирования пользователя.
(b) если обычный пользователь вошел в систему получить/вывести/удалить записи бронирования для этого конкретного пользователя.
Примечание: Я пытался сделать это без этой функциональности и просто используя пользовательские разрешения, но это не работает, возможно, потому что он не может получить идентификацию пользователя.
permissions.py
from django.contrib.auth import get_user_model
from rest_framework.permissions import BasePermission
User = get_user_model()
class IsUserOrIsAdmin(BasePermission):
"""Allow access to the respective User object and to admin users."""
def has_object_permission(self, request, view, obj):
return (request.user and request.user.is_staff) or (
isinstance(obj, User) and request.user == obj
)