Edit views
This commit is contained in:
parent
f929755e5f
commit
ad79a6ce16
|
@ -1,80 +1,42 @@
|
||||||
import django_filters.rest_framework
|
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from rest_framework import viewsets, filters, generics, permissions
|
from rest_framework import filters, generics, permissions
|
||||||
from rest_framework.response import Response
|
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
from rest_framework import status
|
from .serializers import BookSerializer, UserSerializer
|
||||||
from django.http import Http404
|
from .models import Book
|
||||||
from django_filters.rest_framework import DjangoFilterBackend
|
|
||||||
from .serializers import BookSerializer, BookmarkSerilizer, UserSerializer
|
|
||||||
from .models import Book, Bookmark
|
|
||||||
from .permissions import isOwner
|
from .permissions import isOwner
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
class UserList(APIView):
|
class UserList(generics.ListAPIView):
|
||||||
queryset = User.objects.all()
|
#queryset = User.objects.all()
|
||||||
serializer_class = UserSerializer
|
serializer_class = UserSerializer
|
||||||
|
pagination_class = None
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return User.objects.filter(username=self.request.user)
|
||||||
|
|
||||||
|
|
||||||
class UserDetail(generics.RetrieveAPIView):
|
class BookList(generics.ListCreateAPIView):
|
||||||
queryset = User.objects.all()
|
|
||||||
serializer_class = UserSerializer
|
|
||||||
|
|
||||||
|
|
||||||
class BookList(APIView):
|
|
||||||
serializer_class = BookSerializer
|
serializer_class = BookSerializer
|
||||||
#queryset = Book.objects.all()
|
#queryset = Book.objects.all()
|
||||||
#filter_backends = [filters.SearchFilter, filters.OrderingFilter]
|
|
||||||
#search_fields = ['title', 'author']
|
|
||||||
#ordering_fields = ['pub_date', 'title', 'author']
|
|
||||||
#ordering = ['title']
|
|
||||||
permission_classes = [permissions.IsAuthenticated, isOwner]
|
permission_classes = [permissions.IsAuthenticated, isOwner]
|
||||||
|
filter_backends = [filters.SearchFilter, filters.OrderingFilter]
|
||||||
|
search_fields = ['title', 'author']
|
||||||
|
ordering_fields = ['title', 'author']
|
||||||
|
ordering = ['title']
|
||||||
|
|
||||||
def get(self, request, format=None):
|
def get_queryset(self):
|
||||||
books = Book.objects.filter(owner=request.user)
|
return Book.objects.filter(owner=self.request.user)
|
||||||
serializer = BookSerializer(books, many=True)
|
|
||||||
return Response(serializer.data)
|
def perform_create(self, serializer):
|
||||||
|
serializer.save(owner=self.request.user)
|
||||||
def post(self, request, format=None):
|
|
||||||
serializer = BookSerializer(data=request.data)
|
|
||||||
if serializer.is_valid():
|
|
||||||
serializer.save(owner=request.user)
|
|
||||||
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
|
||||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
|
||||||
|
|
||||||
|
|
||||||
|
class BookDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
class BookDetail(APIView):
|
serializer_class = BookSerializer
|
||||||
#serializer_class = BookSerializer
|
|
||||||
#queryset = Book.objects.all()
|
|
||||||
#filter_backends = [filters.SearchFilter, filters.OrderingFilter]
|
|
||||||
#search_fields = ['title', 'author']
|
|
||||||
#ordering_fields = ['pub_date', 'title', 'author']
|
|
||||||
#ordering = ['title']
|
|
||||||
permission_classes = [permissions.IsAuthenticated, isOwner]
|
permission_classes = [permissions.IsAuthenticated, isOwner]
|
||||||
|
|
||||||
def get_object(self, pk, owner=None):
|
|
||||||
try:
|
|
||||||
return Book.objects.get(pk=pk, owner=owner)
|
|
||||||
except Book.DoesNotExist:
|
|
||||||
raise Http404
|
|
||||||
|
|
||||||
def get(self, request, pk, format=None):
|
|
||||||
book = self.get_object(pk, request.user)
|
|
||||||
serializer = BookSerializer(book)
|
|
||||||
return Response(serializer.data)
|
|
||||||
|
|
||||||
def put(self, request, pk, format=None):
|
def get_queryset(self):
|
||||||
book = self.get_object(pk, request.user)
|
pk = self.kwargs['pk']
|
||||||
serializer = BookSerializer(book, data=request.data)
|
return Book.objects.filter(pk=pk, owner=self.request.user)
|
||||||
|
|
||||||
if serializer.is_valid():
|
|
||||||
serializer.save()
|
|
||||||
return Response(serializer.data)
|
|
||||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
|
||||||
|
|
||||||
def delete(self, request, pk, format=None):
|
|
||||||
book = self.get_object(pk, request.user)
|
|
||||||
book.delete()
|
|
||||||
return Response(status=status.HTTP_204_NO_CONTENT)
|
|
||||||
|
|
Loading…
Reference in New Issue