Makes your CRUD's even more smaller and customizable with dj easy views .
pip install djeasyview
This mixin provides generic implementations for listing and creating resources.
from djeasyview import DjeasyListCreateView
from your_app.models import YourModel
from your_app.serializers import YourModelSerializer
from rest_framework.permissions import IsAuthenticated
class YourView(DjeasyListCreateView):
model = YourModel
list_serializer_class = YourModelSerializer
create_serializer_class = YourModelSerializer
serializer_class = YourModelSerializer
queryset = YourModel
select_related = ['field1', 'field2']
prefetch_related = ['field1', 'field2']
permission_classes = [IsAuthenticated]
enable_cache = True
cache_duration = 60
order_by = ['field1' , 'field2']
This mixin provides generic implementations for Retrive , updating and deleting resources.
from djeasyview import DjeasyRetrieveUpdateApiView
from your_app.models import YourModel
from your_app.serializers import YourModelSerializer
from rest_framework.permissions import IsAuthenticated
class YourView(DjeasyRetrieveUpdateApiView):
model = YourModel
list_serializer_class = YourModelSerializer
create_serializer_class = YourModelSerializer
serializer_class = YourModelSerializer
queryset = YourModel
permission_classes = [IsAuthenticated]
enable_cache = True
cache_duration = 60
-
customize your get_queryset
def get_queryset(self): super().get_queryset() return YourModel.objects.filter(**filter_conditions)
-
customize your responses
from rest_framework.response import Response def get_response(self, serializer_klass, queryset): super().get_response(serializer_klass, self.get_queryset()) return Response(serializer_klass(queryset).data)