如何序列化字符串列表

How to serialize a list of strings

我的序列化程序遇到了一个相当简单的问题。
我的看法:

@api_view(['GET'])
def get_recipes_list(request):
    recipes = Recipe.objects.all()

    serializer = RecipeListSerializer(recipes, context={'request': request}, many=True)
    return Response(serializer.data)

我的序列化器:

class RecipeListSerializer(serializers.Serializer):
    name = serializers.CharField()

我得到的输出:

[
    {
        "name": "Gelato1"
    },
    {
        "name": "Gelato2"
    },
]

我想要的是:

[
    'name': [
       'Gelato1',
       'Gelato2',
    ] 
]

我试过了:recipes = Recipe.objects.all().values_list('name', flat=True)
所以 QuerySet 有一个名称列表,但我得到一个 AttributeError。 如果有任何建议,我将不胜感激。

如果你使用 values_list 和 flat 属性,你不需要将它传递给 serializer.For 你的输出,你可以将结果添加到 Response :

recipes =list(Recipe.objects.values_list('name', flat=True)
return Response({'output':recipes})