在ModelSerializer中设置公共字段



你好,我在这方面相当新,所以这可能是一个愚蠢的问题假设我有许多模型序列化器,但对于例如,让我们取4

下面是代码

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']

我在这些模型序列化器中有其他字段,但这五个字段在所有序列化器中都是常见的,所以我可以创建一个BaseModelSerializer,这样我就可以在这些序列化器中继承它,并且默认情况下会得到这些字段,我不必一遍又一遍地写它。如果有人可以帮助提前感谢

我的建议是创建一个基本序列化器,并让其他序列化器继承它。下面是一个例子:

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

最新更新