[英]How can I serialize list of booleans in django rest framework serializer?
我正在使用 Django Rest 框架,我希望我的数据像这样存储: 'days': [True, True, False, True, False, False, False]
作为返回的字段之一。
我想要一个序列化器:
class HistorySerializer(serializers.Serializer):
days = serializers.BooleanField(many=True)
但serializers.BooleanField
没有“很多”参数。
我试过这样做:
class DaysListField(serializers.ListField):
day = serializers.BooleanField()
class HistorySerializer(serializers.Serializer):
days = DaysListField()
但它产生:
'days': [{'day': True}, {'day': True}, {'day': False}, {'day': False}, {'day': False}, {'day': False}, {'day': False}]
我也试过这样做:
class HistorySerializer(serializers.Serializer):
days = serializers.SerializerMethodField()
def get_days(self, obj) -> List[bool]:
return obj.days
但是 Swagger 产生不正确的 output 类型的days
,它说它应该是boolean
而不是[boolean]
。
正确处理此列表的最佳方法是什么?
SerializerMethodField()
是执行此操作的好方法。 更改示例的 django 查询部分以返回列表。
class HistorySerializer(serializers.Serializer):
days = serializers.SerializerMethodField()
def get_days(self, obj):
return list(obj.days.value_list('day', flat=True))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.