[英]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.