Как показать только видео в Django-Rest-Framework?
Я использую Django и React для создания клона YouTube.
У меня есть панель администратора, где пользователь может удалять и редактировать свои видео.
Но проблема в том, что он показывает мои видео и видео других пользователей.
Как сделать так, чтобы в админ панели отображались только мои видео?
views.py Api Views
class AdminVideoDetail(generics.RetrieveAPIView):
permission_classes = [IsAuthenticated]
quesryset = Video.objects.all()
serializer_class = VideoSerializer
videos.js Видео в панели администратора
Если вы хотите посмотреть на весь проект, вот github: https://github.com/PHILLyaHI/diplom-work
Создайте модуль python с именем permissions.py
добавьте эту строку кода
from rest_framework import permissions
class IsOwnerOrReadOnly(permissions.BasePermission):
"""
"""
def has_object_permission(self, request, view, obj):
# I check if the request is of type GET or OPTIONS
#I return true, that the use is able to access on this views
if request.method in permissions.SAFE_METHODS:
return True
return obj.owner == request.user
"""
Instance must have an attribute named `owner` or you can change owner with the name of your models fields `user = models.ForeignKey(UserModel, on_delete=models.casscade).
"""
После этого, зайдите в модуль views.py, добавьте
class AdminVideoDetail(generics.RetrieveAPIView):
permission_classes = [IsAuthenticated, IsOwnerOrReadOnly]
quesryset = Video.objects.all()
serializer_class = VideoSerializer
Только видеозаписи владельца будут получены