【发布时间】:2021-03-19 17:55:08
【问题描述】:
我想使用具有fields 字段的序列化程序:
class MySerializer(Serializer):
fields = CharField(required=True)
但是Serializer 类已经有一个名为fields 的方法。
所以在使用实例和类的这个属性时存在歧义,这可能会导致错误并弄乱静态分析器:
>>> a = MySerializer()
>>> a.fields
{'fields': CharField(required=True)}
>>> MySerializer.fields
<django.utils.functional.cached_property object at 0x543543215670>
所以,我想知道,有没有办法用如下别名声明一个序列化程序类:
class MySerializer(Serializer):
fields_ = CharField(required=True, alias='fields')
重要的是让它能够解析别名为fields的输入数据:
>>> a = MySerializer(data={'fields': 'some text'})
>>> a.is_valid()
True
>>> a.validated_data
OrderedDict([('fields', 'some text')])
【问题讨论】:
标签: django serialization django-rest-framework