Я пытаюсь написать приложение для ресторана с использованием REST API. У меня есть модель, как показано ниже:
# models.py
# =========================================================================
class Food(models.Model):
food_id = models.IntegerField(primary_key=True, unique=True)
name = models.CharField(max_length=30, null=False, blank=False)
desc = models.TextField(max_length=200)
price = models.IntegerField(null=False, blank=False)
f_thumbnail = models.ImageField(upload_to='img/imgFood/')
DDD_data = models.ImageField(upload_to='img/DDD_Food/')
def __str__(self):
return '%s %s' % (self.name, self.price)
когда клиент отправляет запрос на все файлы, я хочу передать ему список всех файлов изображений класса Food с помощью ListAPIView.
Как я могу в этом разобраться?
@gpichot: я отредактировал свой вопрос. на самом деле я понятия не имел, как клиент может видеть все изображения.





Вы можете создать ListFoodImagesView, который расширяет ListAPIView, например:
from rest_framework import generics
class ListFoodImagesView(generics.ListAPIView):
serializer_class = FoodImagesSerializer
queryset = Food.objects.all()
и используйте FoodImageSerializer, который просто сериализует URL-адрес изображения, например:
from rest_framework import serializers
class FoodImageSerializer(serializers.ModelSerializer):
image_url = serializers.SerializerMethodField()
class Meta:
model = Food
fields = ('image_url', )
def get_image_url(self, food):
return food.DDD_data.url
Не могли бы вы подробнее рассказать о своем вопросе? Когда вы говорите django REST, вы имеете в виду структуру django REST? Если да, то что вы пробовали до сих пор? Вы писали конечную точку, например, с помощью ListAPIView и соответствующего сериализатора (ов)?