Decorator for creating dict based on the drf serializer class for swagger
Project description
Decorator for creating dict based on the drf serializer class for swagger
Provides a decorator for converting the drf serializer class to a dictionary
Requirements
- django>=4.2.11
- djangorestframework>=3.14.0
- drf-spectacular>=0.27.2
Install
pip install drf-serializer-dumps
About decorator
drf_serializer_dumps serializer_dumps
is based on the assignment of fields in the serializer to generate a dict, for SerializerMethodField
, the definition is made by OpenApiTypes
or the usual python type hints.
- Optional parameters:
exclude_fields
Exclude a number of serializer fields when generating a dictionary.renew_type_value
Generate a newuuid
anddatetime, date, time
when calling the function.extend_type_map
Expand the type dictionary to default values, new types and their values, or redefine existing types and their values.
Usage example
Direct usage
# Example 1
from rest_framework import serializers
from drf_serializer_dumps.decoratos import serializer_dumps
class PersonCars(serializers.Serializer):
car_name = serializers.CharField()
car_price = serializers.IntegerField()
class PersonSerializer(serializers.Serializer):
name = serializers.CharField()
age = serializers.IntegerField()
cars = PersonCars(many=True)
result = serializer_dumps(PersonSerializer)
print(result)
>>> {'name': 'string', 'age': 1, 'cars': [{'car_name': 'string', 'car_price': 1}]}
# Example 2
from rest_framework import serializers
from django.contrib.postgres.fields import ArrayField
from drf_serializer_dumps.decoratos import serializer_dumps
class Person(models.Model):
name = models.CharField(max_length=256)
phones = ArrayField(models.CharField(max_length=256))
class PersonSerializer(serializers.ModelSerializer):
class Meta:
model = Person
fields = '__all__'
result = serializer_dumps(PersonSerializer)
print(result)
>>> {'name': 'string', 'phones': ['string']}
# Integration with drf-spectacular extend_schema decorator
@extend_schema(
examples=[
OpenApiExample('Name1', serializer_dumps(Some1Serializer)),
OpenApiExample('Name2', serializer_dumps(Some2Serializer)),
]
)
def your_api_method(self, request, *args, **kwargs):
...
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
Built Distribution
Close
Hashes for drf_serializer_dumps-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b085b91ba1b1e728da204ee91a7063d8b964b8b7c7e05c1b84efb319a13d599 |
|
MD5 | 10408e824025c9444fe34303f1eba63e |
|
BLAKE2b-256 | c3f412e3e33a175be015bbddef30db107e913372966de12e9def42c4e4f2d271 |
Close
Hashes for drf_serializer_dumps-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c535618c045ed6b152a419b4ab0ba71cf4efdbb6fc5bdbb47e3496f13b028fc |
|
MD5 | d05030c6393487440cf644415b696bdc |
|
BLAKE2b-256 | 509dd19e9fddc597aab0c73f8bc13e9d652935180abcb76dae79720c5cd7b11a |