Esempio n. 1
0
class TitleViewSet(viewsets.ModelViewSet):
    queryset = Title.objects.all()
    serializer_class = TitleSerializer
    permission_classes = (has_role('Administrator', read_only=True), )
    filter_backends = [
        DjangoFilterBackend,
    ]
    filterset_class = TitlesFilter
Esempio n. 2
0
class GenreViewSet(mixins.CreateModelMixin, mixins.DestroyModelMixin,
                   mixins.ListModelMixin, viewsets.GenericViewSet):
    queryset = Genre.objects.all()
    serializer_class = GenreSerializer
    permission_classes = (has_role('Administrator', read_only=True), )
    filter_backends = [filters.SearchFilter]
    search_fields = [
        'name',
    ]
    lookup_field = "slug"
Esempio n. 3
0
class ReviewViewSet(viewsets.ModelViewSet):
    serializer_class = ReviewSerializer
    permission_classes = (
        IsAuthorOrReadOnly | has_role('Moderator'),
        IsAuthenticatedOrReadOnly)

    def perform_create(self, serializer):
        title = get_object_or_404(Title, pk=self.kwargs['title_id'])
        serializer.save(
            author=self.request.user,
            review_object=title
        )

    def get_queryset(self):
        return Review.objects.filter(review_object__pk=self.kwargs['title_id'])
Esempio n. 4
0
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer
    pagination_class = PageNumberPagination
    permission_classes = (has_role('Administrator'), )
    lookup_field = "username"