图片管理
在图片表中我们需要对图片数据进行增删改查操作,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作
获取图片列表数据
接口分析
请求方式: GET /meiduo_admin/skus/images/
from .views import images
# 图片查询路由****************************
router = DefaultRouter()
router.register('skus/images', images.ImageView, base_name='images')
urlpatterns += router.urls
请求参数: 通过请求头传递jwt token数据。
返回数据: JSON
{
"counts": "图片总数量",
"lists": [
{
"id": "图片id",
"sku": "SKU商品id",
"image": "图片地址"
}
...
],
"page": "页码",
"pages": "总页数",
"pagesize": "页容量"
}
返回值 | 类型 | 是否必须 | 说明 |
---|---|---|---|
count | int | 是 | 图片总量 |
lists | 数组 | 是 | 图片信息 |
page | int | 是 | 页码 |
pages | int | 是 | 总页数 |
pagesize | int | 是 | 页容量 |
后端实现
from rest_framework.viewsets import ModelViewSet
from goods.models import SKUImage
from meiduo_admin.utils import UserPageNum
from meiduo_admin.serializers.images import ImageSeriazlier
class ImageView(ModelViewSet):
# 图片序列化器
serializer_class = ImageSeriazlier
# 图片查询集
queryset = SKUImage.objects.all()
# 分页
pagination_class = UserPageNum
序列化器的定义
from rest_framework import serializers
from goods.models import SKUImage
class ImageSeriazlier(serializers.ModelSerializer):
# 返回图片关联的sku的id值
sku = serializers.PrimaryKeyRelatedField(read_only=True)
class Meta:
model = SKUImage
fields = ('sku', 'image', 'id')
【要开启存储图片的fastDFS服务,否则加载不出来图片】