2024-06-25 06:52:31 发布
网友
如果我有这样一个序列化程序:
class CommentSerializer(serializers.Serializer): email = serializers.EmailField() content = serializers.CharField(max_length=200)
那么serializer.data返回的字典将有键"email"和"content"
serializer.data
"email"
"content"
但我需要包含名称不是有效Python标识符的字段:
"type"
"@context"
有没有惯用的方法
尝试将to_representation()中的CommentSerializer方法重写为
to_representation()
CommentSerializer
class CommentSerializer(serializers.Serializer): type = serializers.EmailField() content = serializers.CharField(max_length=200) def to_representation(self, instance): data = super().to_representation(instance) return_data = {} return_data.update({"type": data['type'], "@context": data['content']}) return return_data
例如:
In [2]: mydata = {"type": "myemail@gmail.com","content": "some content"} In [3]: comment = CommentSerializer(data=mydata) In [4]: comment.is_valid(True) Out[4]: True In [5]: comment.data Out[5]: {'type': 'myemail@gmail.com', '@context': 'some content'}
尝试将
to_representation()
中的CommentSerializer
方法重写为例如:
相关问题 更多 >
编程相关推荐