【发布时间】:2018-08-15 23:11:35
【问题描述】:
我创建了一个自定义序列化程序类,将答案复制到this question,但在此示例中,fields 参数替换了原始Meta.fields 属性,我想要的是添加 Meta.fields 的新元素。有什么办法可以做到吗?
这是我的序列化器:
class DynamicModelSerializer(serializers.ModelSerializer):
def __init__(self, *args, **kwargs):
fields = kwargs.pop('fields', None)
add_fields = kwargs.pop('add_fields', None)
exclude = kwargs.pop('exclude', None)
nest = kwargs.pop('nest', None)
if nest is not None:
self.Meta.depth = nest
super(DynamicModelSerializer, self).__init__(*args, **kwargs)
if fields is not None:
allowed = set(fields)
existing = set(self.fields.keys())
for field_name in existing - allowed:
self.fields.pop(field_name)
if exclude is not None:
for field_name in exclude:
self.fields.pop(field_name)
【问题讨论】:
标签: python django django-rest-framework