如何使用Mongoengine(用于Django的Mongodb模块)在Django Rest框架中存储和服务映像

2024-09-28 01:30:51 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的型号.py地址:

models.py

class Resource(Document):
    instruction = fields.StringField(required=True)
    picture = fields.ImageField(required=False)

以及我的序列化程序:

class ResourceSerializer(serializers.DocumentSerializer):
    class Meta:
        model = Resource
        fields = '__all__'

还有我的视图.py你知道吗

class ResourceViewSet(viewsets.ModelViewSet):
    lookup_field = 'id'
    serializer_class = ResourceSerializer

    def get_queryset(self):
        return Resource.objects()

这就是我在列出图片时得到的反应

HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

[
    {
       "id": "5ac4886a91a48946801813c9",
       "instruction": "test",
       "picture": "5ac4886991a48946801813bf"
    }
]

note : mongodb using gridfs to storing the imagefiles

如果mongodb使用gridfs来存储imagefiles,我如何将图像发送到客户端?你知道吗


Tags: pyidfieldsmodelsmongodb地址requiredresource
1条回答
网友
1楼 · 发布于 2024-09-28 01:30:51

我猜你想发回图片的网址? 如果我的假设是正确的,你可以试试SerializerMethodField。你知道吗

应该是这样的:

class ResourceSerializer(serializers.DocumentSerializer):
    picture = serializers.SerializerMethodField()
    class Meta:
        model = Resource
        fields = '__all__'

    def get_picture(self, obj):
        return obj.picture.url

相关问题 更多 >

    热门问题