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_nameparameter 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
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c8cb024ee22bca941be47403ab3912113461d2403d8e8ee71a6be143e791262
|
|
| MD5 |
b9cec67cada395d8072c11b1a9dec3a4
|
|
| BLAKE2b-256 |
db846d07b9925d222f376c7ddc07ccaf7373d7fddeda7a2e5857de29e1b8108a
|
File details
Details for the file drf_verbose_serializers-0.1.0-py3-none-any.whl.
File metadata
- Download URL: drf_verbose_serializers-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e49503fda49ec2c1db22d69a550330f3f6afd49e770569ef6da241479e293a5
|
|
| MD5 |
2c9bb00363b9c99fc851a37fbf61f46c
|
|
| BLAKE2b-256 |
038580c6cdf26bda97ac815345a9782e3a765954038fdad20c235b4727f4ebbb
|