Skip to main content

Django REST framework extension providing verbose field names for serializers

Project description

DRF Verbose Serializers

A Django REST Framework extension that allows you to use verbose field names in your serializers.

Installation

pip install drf-verbose-serializers

Features

  • Adds verbose_field_name parameter to DRF serializer fields
  • Allows customizing serializer output field names without changing the underlying model or serializer field names
  • Supports nested serializers with many=True relationships
  • Includes mixins for both ModelSerializer and Serializer classes

Usage

Basic Example

from rest_framework import serializers
from drf_verbose_serializers import VerboseModelSerializerMixin, VerboseCharField, VerboseIntegerField

class UserSerializer(VerboseModelSerializerMixin, serializers.ModelSerializer):
    username = VerboseCharField(verbose_field_name='Username')
    email = VerboseCharField(verbose_field_name='Email Address')
    age = VerboseIntegerField(verbose_field_name='Age')

    class Meta:
        model = User
        fields = ['username', 'email', 'age']

This will produce JSON like:

{
    "Username": "johndoe",
    "Email Address": "john@example.com",
    "Age": 30
}

Using with Regular Serializers

from rest_framework import serializers
from drf_verbose_serializers import VerboseSerializerMixin, VerboseCharField, VerboseIntegerField

class UserSerializer(VerboseSerializerMixin, serializers.Serializer):
    username = VerboseCharField(verbose_field_name='Username')
    email = VerboseCharField(verbose_field_name='Email Address')
    age = VerboseIntegerField(verbose_field_name='Age')

Nested Serializers

from rest_framework import serializers
from drf_verbose_serializers import (
    VerboseModelSerializerMixin, 
    VerboseCharField,
    VerbosePrimaryKeyRelatedField
)

class CommentSerializer(VerboseModelSerializerMixin, serializers.ModelSerializer):
    text = VerboseCharField(verbose_field_name='Comment Text')
    
    class Meta:
        model = Comment
        fields = ['text']

class PostSerializer(VerboseModelSerializerMixin, serializers.ModelSerializer):
    title = VerboseCharField(verbose_field_name='Post Title')
    body = VerboseCharField(verbose_field_name='Post Body')
    comments = CommentSerializer(many=True, verbose_field_name='Post Comments')
    
    class Meta:
        model = Post
        fields = ['title', 'body', 'comments']

Available Fields

All standard DRF fields are supported with verbose name variants:

  • VerboseCharField
  • VerboseIntegerField
  • VerboseBooleanField
  • VerboseDateTimeField
  • VerboseDateField
  • VerboseFloatField
  • VerboseDecimalField
  • VerboseEmailField
  • VerboseSerializerMethodField
  • VerboseRelatedField
  • VerbosePrimaryKeyRelatedField
  • VerboseHyperlinkedRelatedField
  • VerboseSlugRelatedField
  • VerboseHyperlinkedIdentityField
  • VerboseListField
  • VerboseDictField
  • VerboseJSONField
  • VerboseStringRelatedField

License

MIT

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_verbose_serializers-0.1.0.tar.gz (5.2 kB view details)

Uploaded Source

Built Distribution

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

drf_verbose_serializers-0.1.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file drf_verbose_serializers-0.1.0.tar.gz.

File metadata

  • Download URL: drf_verbose_serializers-0.1.0.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for drf_verbose_serializers-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8c8cb024ee22bca941be47403ab3912113461d2403d8e8ee71a6be143e791262
MD5 b9cec67cada395d8072c11b1a9dec3a4
BLAKE2b-256 db846d07b9925d222f376c7ddc07ccaf7373d7fddeda7a2e5857de29e1b8108a

See more details on using hashes here.

File details

Details for the file drf_verbose_serializers-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for drf_verbose_serializers-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e49503fda49ec2c1db22d69a550330f3f6afd49e770569ef6da241479e293a5
MD5 2c9bb00363b9c99fc851a37fbf61f46c
BLAKE2b-256 038580c6cdf26bda97ac815345a9782e3a765954038fdad20c235b4727f4ebbb

See more details on using hashes here.

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