您当前的位置: 首页 > 

IT之一小佬

暂无认证

  • 0浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

规格表管理之删除规格表数据

IT之一小佬 发布时间:2021-07-28 21:35:18 ,浏览量:0

删除规格表数据

接口分析

请求方式: Delte /meiduo_admin/goods/specs/(?P\d+)/

     # -------规格路由表--------
    url(r'goods/simple/$',specs.SpecsView.as_view({'get':'simple'})),
#  规格表路由*****************************
router = DefaultRouter()
router.register('goods/specs',specs.SpecsView, base_name='specs')
print(router.urls)
urlpatterns += router.urls

请求参数: 通过请求头传递jwt token数据。

在路径中携带删除的规格的id值

返回数据: JSON

返回空

后端实现

# SpecsView继承的是ModelViewSet 所以删除逻辑还是使用同一个类视图
class SpecsView(ModelViewSet):
        """
            规格表视图
        """
    serializer_class =SPUSpecificationSerializer
    queryset = SPUSpecification.objects.all()
    pagination_class = PageNum

为了拿到/meiduo_admin/goods/simple/接口中的数据,还需要添加方法:

class SpecsView(ModelViewSet):
    """商品规格的增删改查"""
    #  指定序列化器
    serializer_class = SPUSpecificationSerializer
    #  指定查询集
    queryset = SPUSpecification.objects.all()
    #  指定分页器
    pagination_class = UserPageNum

    def simple(self, request):
        spus = SPU.objects.all()
        ser = SPUSerializer(spus, many=True)
        return Response(ser.data)

序列化器:

from rest_framework import serializers
from goods.models import SPUSpecification
from goods.models import SPU



class SPUSerializer(serializers.ModelSerializer):
    """SPU序列化器"""
    class Meta:
        model = SPU
        fields = ('id', 'name')

注意:

此处通过查看继承的父类方法发现,这儿的删除属于物理删除,如果想要逻辑删除,可以修改父类的方法。

 修改删除方法的示例代码:

class SpecsView(ModelViewSet):
    """商品规格的增删改查"""
    #  指定序列化器
    serializer_class = SPUSpecificationSerializer
    #  指定查询集
    queryset = SPUSpecification.objects.all()
    #  指定分页器
    pagination_class = UserPageNum

    def simple(self, request):
        spus = SPU.objects.all()
        ser = SPUSerializer(spus, many=True)
        return Response(ser.data)

    def destroy(self, request, *args, **kwargs):
        spec = self.get_object()
        spec.is_delete = True  # 前提是数据库中有这个is_delete字段
        spec.save

关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.0388s