Skip to main content

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

Project Status
CI/CD Latest Release
Quality Coverage
Package PyPI - Version PyPI - Support Python Versions Project PyPI - Downloads
Meta types - Mypy License - MIT code style - Ruff

Provides a decorator for converting the drf serializer class to a dictionary

Install

  1. Install package
    pip install drf-serializer-dumps
    

About decorator

serializer_dumps decorator 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 new uuid and datetime, 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

Example 1

from rest_framework import serializers
from drf_serializer_dumps.decorators 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.decorators 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)
>>> {'id': 1, 'name': 'string', 'phones': ['string']}

Example 3

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):
    ...

Contributing

We would love you to contribute to drf-serializer-dumps, pull requests are very welcome! Please see CONTRIBUTING.md for more information.

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

drf_serializer_dumps-1.0.6.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

drf_serializer_dumps-1.0.6-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file drf_serializer_dumps-1.0.6.tar.gz.

File metadata

  • Download URL: drf_serializer_dumps-1.0.6.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for drf_serializer_dumps-1.0.6.tar.gz
Algorithm Hash digest
SHA256 f6eb4ffdce7ff4309052e9250fc086c494d644af4325b7963f5f8e4304a098ac
MD5 33be8b0b33c09777469039a72cf10560
BLAKE2b-256 24f551e020e571900dd0ac233aab96d62f803ee5525bab1e042fc7038e7f3879

See more details on using hashes here.

Provenance

The following attestation bundles were made for drf_serializer_dumps-1.0.6.tar.gz:

Publisher: publish-to-pypi.yml on Friskes/drf-serializer-dumps

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file drf_serializer_dumps-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for drf_serializer_dumps-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 b8f167b4026c3f38f9b48410c4027a790cf4093f0b63eb54bcdec075316ddc7c
MD5 e085b23450d6cda025d4d13caa559585
BLAKE2b-256 89be99df2d7303595f2516483528b3f277eeecc8f30d0559d30371d40745b86c

See more details on using hashes here.

Provenance

The following attestation bundles were made for drf_serializer_dumps-1.0.6-py3-none-any.whl:

Publisher: publish-to-pypi.yml on Friskes/drf-serializer-dumps

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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