在DRF中管理自定义序列化程序的最佳方法是什么

时间:2017-02-04 12:00:48

标签: python django django-rest-framework

我有一个自定义序列化程序,其中包含一些其他模型序列化程序,数据字段和一些列表字段,用于管理多对多关系。这是一个例子。

class CustomSerializer(serializers.Serializer):
    a_model_serializer = AModelSerializer()
    b_model_serializer = serializers.ListField(child=CModelSerializer())
    another_field = serializers.CharField()

基于这个序列化程序,我必须通过第三个表创建一些模型对象和一些多对多的关系。现在,这可能是解决这种情况的最佳方式。

1 个答案:

答案 0 :(得分:0)

覆盖serializers.Serializer的create()函数。要管理更新,请覆盖update()函数。

class CustomSerializer(serializers.Serializer):
    a_model_serializer = AModelSerializer()
    b_model_serializer = serializers.ListField(child=CModelSerializer())
    another_field = serializers.CharField()

    def create(self, validated_data):
       print(validated_data)
       # Do your custom create

    def update(self, instance, validated_data):
       print(validated_data)
       # Do your custom update

http://www.django-rest-framework.org/api-guide/serializers/#saving-instances