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:
-
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)
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
Release files for djeasyview 1.0.15
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| djeasyview-1.0.15.tar.gz | 7.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| djeasyview-1.0.15-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.4 kB
Release files / djeasyview-1.0.15.tar.gz
| Download URL | djeasyview-1.0.15.tar.gz |
|---|---|
| Size | 7.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
664b40135488474fd523ba4f7a75f8f464f5c3d571b958631a11022cbb1655d2
|
|
BLAKE2b-256 checksum How to use checksums |
74d6fafa5a8bc41a133f95eca0958837705b8b7a906b11b9afddb937ec9956cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Release files / djeasyview-1.0.15-py3-none-any.whl
| Download URL | djeasyview-1.0.15-py3-none-any.whl |
|---|---|
| Size | 7.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d427dd1947de65b58c320490194546d9a7747cab70d45a3ac43cde4ed6e5f5dc
|
|
BLAKE2b-256 checksum How to use checksums |
4e5f3218edcf997bf09614a87aef569a3a27ffeaa7ad3228ad6be9cac44da3f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|