MIS系统(10)- 商品管理之品牌管理

博客首页 > MIS专栏> 专栏目录

界面展示:
在这里插入图片描述
在这里插入图片描述

1 获取所有对象, 上传、修改图片

  • 配置路由

    • # 13.brand 管理
      router = DefaultRouter()
      router.register(r'goods/brands', brand_views.BrandViewSet, base_name="brands")
      urlpatterns += router.urls
      
      
  • 添加视图

    • from rest_framework.response import Response
      from rest_framework.viewsets import ModelViewSet
      from meiduo_admin.good import brand_serializers
      from meiduo_admin.my_paginate import MyPageNumberPagination
      from goods.models import Brand, SKUImage
      from fdfs_client.client import Fdfs_client
      from django.conf import settings
      
      
      # 1,获取所有品牌
      class BrandViewSet(ModelViewSet):
          pagination_class = MyPageNumberPagination
          serializer_class = brand_serializers.BrandSerializer
          queryset = Brand.objects.all()
      
          # 1,重写create方法,上传图片
          def create(self, request, *args, **kwargs):
              # 1.获取参数
              image = request.FILES.get("logo")  # 获取前端传来的图片
              name = request.data.get("name")
              first_letter = request.data.get("first_letter")
              # 2.校验参数
              if not all([image, name, first_letter]):
                  return Response(status=400)
      
              # 3.数据入库(fdfs,数据)
              # 3.1创建fdfs连接对象
              client = Fdfs_client(settings.BASE_CONFIG)
              # 3.2上传图片到fdfs
              result = client.upload_by_buffer(image.read())
              # 3.3判断是否上传成功
              if result.get("Status") != "Upload successed.":
                  return Response(status=400)
              # 3.4获取上传后的路径
              image_url = result.get("Remote file_id")
              # 3.5保存图片
              Brand.objects.create(logo=image_url, name=name, first_letter=first_letter)
      
              # 4.返回响应
              return Response(status=201)
      
          # 2,重写update方法,修改图片
          def update(self, request, *args, **kwargs):
              # 1.获取参数
              image = request.FILES.get("logo")
              name = request.data.get("name")
              first_letter = request.data.get("first_letter")
              brand = self.get_object()
      
              # 2.校验参数
              if not all([image, name, first_letter]):
                  return Response(status=400)
              # 3.数据入库(fdfs,数据)
              # 3.1创建fdfs连接对象
              client = Fdfs_client(settings.BASE_CONFIG)
              # 3.2上传图片到fdfs
              result = client.upload_by_buffer(image.read())
              print(result)
              # 3.3判断是否上传成功
              if result.get("Status") != "Upload successed.":
                  return Response(status=400)
              # 3.4获取上传后的路径
              image_url = result.get("Remote file_id")
              # 3.5保存图片
              Brand.objects.filter(name=brand.name).update(logo=image_url, name=name, first_letter=first_letter)
              # 4.返回响应
              return Response(status=201)
      
  • 创建序列化器

    • from rest_framework import serializers
      from goods.models import Brand
      
      
      # 1,Brand序列化器
      class BrandSerializer(serializers.ModelSerializer):
          class Meta:
              model = Brand
              fields = '__all__'
      
      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值