[英]DRF: Using Serializer field 'fields'
I want to use a serializer having the field fields
:我想使用具有字段
fields
的序列化程序:
class MySerializer(Serializer):
fields = CharField(required=True)
But Serializer
class already has a method named fields
.但是
Serializer
器 class 已经有一个名为fields
的方法。 So there is ambiguity in using this attribute of the instance and class, which can lead to errors and mess up with static analyzers:所以使用实例的这个属性和 class 存在歧义,这可能会导致错误并与 static 分析器混淆:
>>> a = MySerializer()
>>> a.fields
{'fields': CharField(required=True)}
>>> MySerializer.fields
<django.utils.functional.cached_property object at 0x543543215670>
So, I wonder, is there the way to declare a serializer class with an alias like:所以,我想知道,有没有办法用如下别名声明一个序列化程序 class:
class MySerializer(Serializer):
fields_ = CharField(required=True, alias='fields')
The important part is to make it able to parse input data with the alias fields
:重要的部分是使它能够使用别名
fields
解析输入数据:
>>> a = MySerializer(data={'fields': 'some text'})
>>> a.is_valid()
True
>>> a.validated_data
OrderedDict([('fields', 'some text')])
Try using ModelSerializer, it should work.尝试使用 ModelSerializer,它应该可以工作。
class MySerializer(serializers.ModelSerializer):
class Meta:
model = Your Model Class Name
fields = ('fields',)
# or use fields = '__all__'
Documentation: ModelSerializer文档: 模型序列化器
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.