Skip to content

An django package , acts as mixin for Rest API's in action to reduce the line of code for basic to higher level CRUD functionalities

Notifications You must be signed in to change notification settings

anandrajB/djeasyview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

Dj Easy view CRUD mixins

Makes your CRUD's even more smaller and customizable with dj easy views .

Installation

pip install djeasyview

Usage

GET and POST api's

This mixin provides generic implementations for listing and creating resources.

Example:

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']

GET , PUT , PATCH , DELETE api's

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

Customization:

  1. customize your get_queryset

        def get_queryset(self):
            super().get_queryset()
            return YourModel.objects.filter(**filter_conditions)
  2. 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)

About

An django package , acts as mixin for Rest API's in action to reduce the line of code for basic to higher level CRUD functionalities

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages