Отправка массива изображений как JSON ответа с использованием DRF - PullRequest
0 голосов
/ 06 мая 2020

Я хочу отправить массив изображений в JSON следующим образом:

{"id":1,"timeIntervel":4,"images":["http://127.0.0.1:8000/images/i1.jpg","http://127.0.0.1:8000/images/i2.jpg","http://127.0.0.1:8000/images/i3.jpg","http://127.0.0.1:8000/images/i4.jpg","http://127.0.0.1:8000/images/i5.jpg"]}

Я пробовал это с внешним ключом для моей модели. Но не получил ответа, как указано выше.

model.py

class slidesModel(models.Model):
    images = models.ImageField(upload_to='')
    def __str__(self):
        return str(self.images.name)

class slideImageArrayModel(models.Model):
    timeIntervel=models.IntegerField()
    images = models.ForeignKey(slidesModel, on_delete = models.CASCADE)
    def __str__(self):
        return str(self.id)

serializer.py

class slideSerializer(serializers.ModelSerializer):
    class Meta:
        model = slidesModel
        fields='__all__'

class slideImgArraySerializer(serializers.ModelSerializer):
    class Meta:
        model = slideImageArrayModel
        fields='__all__'
        depth = 1

views.py

class slidesViewSet(viewsets.ViewSet):
    def retrieve(self, request, pk=None):
        queryset = slideImageArrayModel.objects.all()
        user = get_object_or_404(queryset, pk=1) #it will always sends the first object
        serializer = slideImgArraySerializer(user)
        return Response(serializer.data)

Мой существующий вывод - это то, что требует некоторой модификации для достижения фактического вывода:

{
    "id": 1,
    "timeIntervel": 4,
    "images": {
        "id": 8,
        "images": "/images/b1.jpg"
    }
}

Я тестирую это на localhost, и он не показывает полный URL-адрес. Я уже включил MEDIA_ ROOT url в настройки и urls.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...