规格选项表管理
在规格选项表中我们需要对规格选项表数据进行增删改查操作,这时候我们可以借助于视图集中的ModelViewset来完成相应的操作
请求方式: GET /meiduo_admin/specs/options/
router = DefaultRouter()
router.register('specs/options', options.OptionsView, base_name='options')
print(router.urls)
urlpatterns += router.urls
请求参数: 通过请求头传递jwt token数据。
返回数据: JSON
[
{
"id": "选项id",
"value": "选项名称",
"spec": "规格名称",
"spec_id": "规格id"
},
...
]
返回值类型是否必须说明idint是选项idvalue数组是选项名称specstr是规格名称spec_idint是规格id
后端实现
from rest_framework.viewsets import ModelViewSet
from meiduo_admin.serializers.options import OptionSerialzier
from goods.models import SpecificationOption
from meiduo_admin.utils import UserPageNum
class OptionsView(ModelViewSet):
"""
规格选项表的增删改查
"""
serializer_class = OptionSerialzier
queryset = SpecificationOption.objects.all()
pagination_class = UserPageNum
序列化器的定义
from rest_framework import serializers
from goods.models import SpecificationOption
class OptionSerialzier(serializers.ModelSerializer):
# 嵌套返回规格名称
spec = serializers.StringRelatedField(read_only=True)
# 返回规格id
spec_id = serializers.IntegerField()
class Meta:
model = SpecificationOption # 规格选项表中的spec字段关联了规格表
fields = "__all__"
运行效果: