Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Rest框架:动态更改嵌套对象_Django_Django Models_Django Rest Framework - Fatal编程技术网

Django Rest框架:动态更改嵌套对象

Django Rest框架:动态更改嵌套对象,django,django-models,django-rest-framework,Django,Django Models,Django Rest Framework,我使用的是GenericForeignKey和ContentTypes,如何动态更改DRF序列化程序中的嵌入对象 例如: class FooObjectSerializer(serializers.ModelSerializer): """ Represents every foo object """ # 'bar=BarSerializer' if content_type is for Bar model. # 'baz=BazSerializer

我使用的是
GenericForeignKey
ContentTypes
,如何动态更改DRF序列化程序中的嵌入对象

例如:

class FooObjectSerializer(serializers.ModelSerializer):
    """
    Represents every foo object
    """

    # 'bar=BarSerializer' if content_type is for Bar model.
    # 'baz=BazSerializer' if content_type is for Baz model.

    class Meta:
        model = models.StoreObject
        fields = ['id', 'content_type', 'object_id', 'content_object']
你能行

class FooObjectSerializer(serializers.ModelSerializer):
    # skipped

    def __init__(self, *args, **kwargs):
        super(FooObjectSerializer, self).__init__(*args, **kwargs)
        if self.instance:
            if isinstance(self.instance.content_object, Bar):
                self.fields['content_object'] = BarSerializer()
            # adjust these checks as you may wish

通过此方法注入的字段是否仍需要在字段数组中定义?