Не могу показать изображение в Mongoengine And Django - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь сделать нормальный API блога с Mongoengine и django. проблема в том, что когда мне нужно показать какое-то изображение, я не смог.

models.py

from mongoengine import *
connect('review')


# Category Model
class CategoryModel(Document):
    _parent = ReferenceField('self')
    name = StringField(max_length=110)
    featuredImage = ImageField(collection_name='filesystem')
    icon = ImageField(collection_name='filesystem')
    order = IntField()

meta = {'collection': 'categories'}

def __str__(self):
    return self.name

serializer.py

from rest_framework_mongoengine import serializers
from products.models import *


# Category Serializer
class CategorySerializer(serializers.DocumentSerializer):
    name = StringField(max_length=110)
    featuredImage = ImageGridFsProxy(collection_name='filesystem')
    icon = ImageGridFsProxy(collection_name='filesystem')
    order = IntField()

class Meta:
    model = CategoryModel
    fields = '__all__'

просмотров. py

from rest_framework_mongoengine import viewsets
from products.models import *
from .serializer import *
from library.api import *


# Category View Set
class CategoryView(viewsets.ModelViewSet):
    queryset = CategoryModel
    serializer_class = CategorySerializer

    def getallcategories(self, request):
        categories = CategoryModel.objects.all()
        serializer = CategorySerializer(categories, many=True)
        return Send(data=serializer.data).response()

и ответ, который я получил,

{
    "id": "5e89b2c89e19fb2137088e63",
    "name": "something",
    "featuredImage": "None",
    "icon": "5e89b2c89e19fb2137088e61",
    "order": 250,
    "_parent": null
}

, но я ожидаю объект с полным ресурсом изображения, например уменьшенное изображение или любой другой размер, который я определю. Нет проблем, если он даст мне либо закодированное изображение, либо URL-адрес изображения. но мне нужно что-то показать на переднем конце

Я ожидаю, что данные, как

{
    "id": "5e89b2c89e19fb2137088e63",
    "name": "something",
    "featuredImage": {
        "fullUrl": fullUrl,
        "encoded": "blabla"
    },
    "icon": {
       or filesystem.file Object
    },
    "order": 250,
    "_parent": null
}
...