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
通过此方法注入的字段是否仍需要在字段数组中定义?