GitHub - ivegor/form-serializer

Simple serializer for forms

example of usage for django-rest-framework:

from rest_framework import serializers

from form_serializer.components import SerializerFieldByAttr, SerializerFieldSet, FormSerializer


class DefaultFilterSet(SerializerFieldSet):
    type = SerializerFieldByAttr('__class__.__name__')
    verbose_name = SerializerFieldByAttr()
    payload = SerializerFieldByAttr('choices')


class CustomForm(FormSerializer):
    name = SerializerFieldByAttr('__class__.__name__')
    fields = DefaultFilterSet()


class TestSerializer(serializers.Serializer):
    id = serializers.IntegerField()
    string = serializers.StringRelatedField()

print(CustomForm(TestSerializer()).serialize())