from rest_framework import serializers class CustomDateField(serializers.DateField): def __init__(self, *args, **kwargs): super().__init__(*args, format='%Y-%m-%d', **kwargs) class CustomDateTimeField(serializers.DateTimeField): def __init__(self, *args, **kwargs): super().__init__(*args, format='%Y-%m-%d %H:%M:%S', **kwargs) class CustomSerializerMethodField(serializers.SerializerMethodField): def __init__(self, method_name=None, **kwargs): super().__init__(method_name, **kwargs) self.field_name = None def bind(self, field_name, parent): self.field_name = field_name return super().bind(field_name, parent) def to_representation(self, value): method = getattr(self.parent, self.method_name) return method(value, self.field_name) class CustomMoneyField(serializers.IntegerField): def to_representation(self, value): return value / 100 if value else 0