django - 如何在 django REST 框架中返回模型的所有图像
问题描述
我正在尝试使用 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 向它提供该类的所有图像文件的列表。
我怎样才能弄清楚?
解决方案
您可以创建一个ListFoodImagesView
which extends ListAPIView
,例如:
from rest_framework import generics
class ListFoodImagesView(generics.ListAPIView):
serializer_class = FoodImagesSerializer
queryset = Food.objects.all()
并使用FoodImageSerializer
仅序列化图像 url 的 a,例如:
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
推荐阅读
- angular - 角嵌套动态表单
- http-redirect - 将本地 url/IP 重定向到其他本地 url/IP
- python - 有没有办法通过不计算不必要的总和来节省时间?
- assembly - XMM或YMM寄存器中的反转字节顺序?
- rest - 在 Restful API 设计中应该返回空列表 [] 200/204 还是 404?
- android - 如何使用“sed”或其他 linux 终端实用程序解析其他两个之间的字符串片段?
- ansible - yum 模块不与 telnet 通话
- java - 创建一个 URI 模式匹配器以允许/禁止解码 JWT
- python - 将字符串转换为日期时间年份会将年份转换为毫秒位置
- java - Keycloak 管理客户端