Skip to main content

No project description provided

Project description

Dj Easy view CRUD mixins

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

Installation

pip install djeasyview

Usage

For Designing API's

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 = ['key1' , 'key2']
    prefetch_related = ['key1' , 'key2']
    permission_classes = [IsAuthenticated]
    enable_cache = True
    cache_duration = 60
    query_params = {
        "name": "name",
        "related_field__id": "related_id",
        "related_field__name": "related_name",
    }
    pagination = True
  • with query params
e.g., localhost:8000/view/?name="anand"&related_id=1&related_name="anandraj"
  • with pagination
e.g., localhost:8000/view/?page_size=10&page_number=1"

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
    select_related = ['key1' , 'key2']
    prefetch_related = ['key1' , 'key2']
    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)
    

For Designing serializers

For creating new serializer instance

DjeasyModelSerializer.options(
    model_name=UserModel,
    queryset=UserModel.objects.all(),
    fields="__all__",
    many=True,
    display_fields={"id","name","email","password","profile"},
    related_fields={
        "profile": {
            "many": False,
            "read_only": True,
            "slug_field": "display_name",
        },
    },
    access_fields={"password": "read_only"},
    rename_fields = {"name" : "username"}
).data

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

djeasyview-1.0.15.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

djeasyview-1.0.15-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file djeasyview-1.0.15.tar.gz.

File metadata

  • Download URL: djeasyview-1.0.15.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for djeasyview-1.0.15.tar.gz
Algorithm Hash digest
SHA256 664b40135488474fd523ba4f7a75f8f464f5c3d571b958631a11022cbb1655d2
MD5 500715cfdb79164762f97fec5962b6de
BLAKE2b-256 74d6fafa5a8bc41a133f95eca0958837705b8b7a906b11b9afddb937ec9956cc

See more details on using hashes here.

File details

Details for the file djeasyview-1.0.15-py3-none-any.whl.

File metadata

  • Download URL: djeasyview-1.0.15-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for djeasyview-1.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 d427dd1947de65b58c320490194546d9a7747cab70d45a3ac43cde4ed6e5f5dc
MD5 07359c4a4d3e2c36872416b548cbfb3b
BLAKE2b-256 4e5f3218edcf997bf09614a87aef569a3a27ffeaa7ad3228ad6be9cac44da3f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page