飞行的猪哼哼

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一:规格表:

<一>:获取规格列表:
1:首先定义一个序列化器,来进行序列化。
分析:模型类字段和前端字段比较:
新建编辑apps/meiduo_admin/serializers/spec_serializers.py

# 规格表的序列化器:
class SpecModelSerializer(serializers.ModelSerializer):
    spu = serializers.StringRelatedField()  # 前端需要名字
    spu_id = serializers.IntegerField()   # 默认只能序列化,不能反序列化,显示定义两个都能使用
    class Meta:
        model = SPUSpecification
        fields = ["id", "name", "spu", "spu_id"]

2:视图和路由:
新建编辑apps/meiduo_admin/views/spec_views.py

from rest_framework.viewsets import ModelViewSet
from ..serializers.spec_serializers import *
from ..paginations import MyPage

class SpecView(ModelViewSet):
    queryset = SPUSpecification.objects.all()
    serializer_class = SpecModelSerializer
    pagination_class = MyPage
 re_path(r'^goods/specs/$', SpecView.as_view({'get': 'list'})),

3:测试:显示列表
在这里插入图片描述
4:路由全部映射,进行测试:

re_path(r'^goods/specs/$', SpecView.as_view({'get': 'list', 'post': 'create'})),
    re_path(r'^goods/specs/(?P<pk>\d+)/$', SpecView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),

测试:新建规格重量:
在这里插入图片描述
测试:更改重量:
在这里插入图片描述
测试:删除重量:
在这里插入图片描述

二:选项表:

<一>:序列化返回列表:
1:序列化器:定义一个序列化器,进行序列化。
新建编辑apps/meiduo_admin/serializers/spec_serializers.py

# 规格选项表的序列化器
class OptionModelSerializer(serializers.ModelSerializer):
    spec = serializers.StringRelatedField()
    spec_id = serializers.IntegerField()
    
    class Meta:
        model = SpecificationOption
        fields = ['id', 'value', 'spec', 'spec_id']

2:定义视图和路由:

class OptionView(ModelViewSet):
    queryset = SpecificationOption.objects.all()
    serializer_class = OptionModelSerializer
    pagination_class = MyPage
# 选项路由:
    re_path(r'^specs/options/$', OptionView.as_view({'get': 'list'})),

3:测试:
在这里插入图片描述
4:路由全部映射测试:

 re_path(r'^specs/options/$', OptionView.as_view({'get': 'list', 'post': 'create'})),
    re_path(r'^specs/options/(?P<pk>\d+)/$', OptionView.as_view({
        'get': 'retrieve',
        'put': 'update',
        'delete': 'destroy'
    })),

测试新建选项:发现没有规格数据,所以还要映射规格的信息。
在这里插入图片描述
应该给我规格信息:
在这里插入图片描述

规格序列化器:

# 规格序列化器    
class OptSpecSimpleSerializer(serializers.ModelSerializer):
    class Meta:
        model = SPUSpecification
        fields = [
            'id',
            'name'
        ]

规格选项视图:

# 规格选项表
class OptSpecSimpleView(ListAPIView):
    queryset = SPUSpecification.objects.all()
    serializer_class = OptSpecSimpleSerializer

路由:

 re_path(r'^goods/specs/simple/$', OptSpecSimpleView.as_view()),

测试:
在这里插入图片描述
测试新建:
在这里插入图片描述
测试修改:修改成16.8
在这里插入图片描述
删除:
在这里插入图片描述

三:频道接口:

<一>: 获取所有频道信息:

1:创建序列化器:

class  GoodsChannelSerializers(serializers.ModelSerializer):
    group = serializers.StringRelatedField()
    group_id = serializers.IntegerField()
    category = serializers.StringRelatedField()
    category_id = serializers.IntegerField()

    class Meta:
        model = GoodsChannel
        fields = "__all__"

2:创建视图:

class GoodsChannelView(ModelViewSet):

    queryset = GoodsChannel.objects.all()
    serializer_class = GoodsChannelSerializers
    pagination_class = MyPage

# 频道接口:
    re_path(r'^goods/channels/$', GoodsChannelView.as_view({"get": "list"})),

测试获取列表接口:拿到了所有的频道。
在这里插入图片描述
路由增加:

re_path(r'^goods/channels/$', GoodsChannelView.as_view({"get": "list", "post": "create"})),

<二>: 获取单一频道信息:
1:增加路由:

  re_path(r'^goods/channels/(?P<pk>\d+)/$', GoodsChannelView.as_view({"get": "retrieve"})),

2:进行测试:
在这里插入图片描述
<三>: 获取频道的所有分组:
1:序列化器:

class GoodsChannelGroupSerializers(serializers.ModelSerializer):
    class Meta:
        model =  GoodsChannelGroup
        fields = "__all__"

2:视图和路由:

class GoodsChannelGroupView(ModelViewSet):
    queryset = GoodsChannelGroup.objects.all()
    serializer_class =GoodsChannelGroupSerializers
    pagination_class = MyPage
# 频道组接口:
    re_path(r'^goods/channel_types/$', GoodsChannelGroupView.as_view({"get": "list", "post": "create"})),
    re_path(r'^goods/channels/(?P<pk>\d+)/$', GoodsChannelGroupView.as_view({"get": "retrieve", 'put': 'update', 'delete': 'destroy'})),

测试:获取频道的分组信息。
在这里插入图片描述

posted on 2020-09-30 09:20  飞行的猪哼哼  阅读(35)  评论(0)    收藏  举报