Skip to main content

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

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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

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