Set Common Fields in ModelSerializer

Hi i am fairly new at this so it might be a silly question Suppose i have many model serializer but for eg lets take 4

below is the code

class ModelSerializer1(ModelSerializer):
    class Meta:
        model = Model1
        fields = ['id', 'created_at', 'updated_at', 'created_by', 'updated_by']
        
    

class ModelSerializer2(ModelSerializer):
    class Meta:
        model = Model2
        fields = ['id', 'created_at', 'updated_at', 'created_by', 'updated_by']
        
        

class ModelSerializer3(ModelSerializer):
    class Meta:
        model = Model3
        fields = ['id', 'created_at', 'updated_at', 'created_by', 'updated_by']
        
    
class ModelSerializer4(ModelSerializer):
    class Meta:
        model = Model4
        fields = ['id', 'created_at', 'updated_at', 'created_by', 'updated_by']

I have other fields in these model serializer but these five fields are common in all the serializer so can i create a BaseModelSerializer so that i can inherit that in these serializer and ill get these fields by default and i dont have to write it again and again. if anyone can help thanks in advance

My suggestion is to create a base serializer and have the other serializers inherit it. Here is an example:

class BasicSerializer(serializers.ModelSerializer):
    class Meta:
         model = MyModel
         fields = ['id', 'created_at', 'updated_at', 'created_by', 'updated_by']


class AdvandedSerializer(BasicSerializer):
    class Meta(BasicSerializer.Meta):
        fields = BasicSerializer.Meta.fields + ['additional_field', ... ]  # more fields

Yes I thought of that too something like

class BaseModelSerializer(ModelSerializer):
    """
    Base Model Serializer class for all other serializers.
    """
    common_fields = ['id', 'created_at', 'updated_at', 'created_by', 'updated_by']

    
class ModelSerializer1(BaseModelSerializer):
    class Meta:
        model = Model1
        fields = BaseModelSerializer.common_fields + ["my_other_fields"]

But i was wondering is there any generic way

Back to Top