from rest_framework.metadata import SimpleMetadata
class ExtraMetadata(SimpleMetadata):
def get_serializer_info(self, serializer):
"""
Given an instance of a serializer, return a dictionary of metadata
about its fields.
"""
# retrieve meta kwargs if provided
extra_meta = copy.deepcopy(getattr(serializer.Meta, 'extra_meta', {}))
# call the original implementation
field_infos = super().get_serializer_info(serializer)
# and add meta kwargs to the fields
for field_name, field in field_infos.items():
if field_name in extra_meta:
for key, value in extra_meta[field_name].items():
field[key] = value
return field_infos
1条答案
按热度按时间soat7uwm1#
可以通过
extra_kwargs
修改标签来修改显示名称,extra_kwargs
为派生字段示例提供参数。另一个元数据有点棘手。因此,我们在元类中引入自己的dictextra_meta
。例如,现在,我们扩展元数据生成器以使用额外的数据:
最后,我们告诉REST框架使用我们的自定义元数据生成器: