界面展示:
1,spu规格选项信息获取
-
目的: 可以编写类视图,获取规格选项信息
-
操作流程:
-
1, 子路由(meiduo_admin/urls.py)
-
#6,spec option管理 router = DefaultRouter() router.register(r'specs/options',specs_options_views.SpecsOptionViewSet,base_name="options") urlpatterns += router.urls
-
-
2,类视图(good/specs_options_views.py)
-
#1,spec option管理 class SpecsOptionViewSet(ModelViewSet): pagination_class = MyPageNumberPagination serializer_class = specs_options_serializers.SpecsOptionSerializer queryset = SpecificationOption.objects.all()
-
-
3,序列化器(good/specs_options_serializsers.py)
-
#1,spec option 序列化器 class SpecsOptionSerializer(serializers.ModelSerializer): #1,重写spec spec = serializers.StringRelatedField(read_only=True) spec_id = serializers.IntegerField() class Meta: model = SpecificationOption fields = "__all__"
-
-
2,spu规格信息获取
-
目的: 可以在添加选项的时候获取所对应的的规格信息
-
操作流程:
-
1, 子路由(meiduo_admin/urls.py)
-
#6,spec option路由 url(r'^goods/specs/simple/$',specs_options_views.SpecSimpleView.as_view())
-
-
2,类视图(good/specs_options_views.py)
-
#2,spec 信息获取 class SpecSimpleView(ListAPIView): serializer_class = specs_options_serializers.SpecSimpleSerializer # queryset = SPUSpecification.objects.all() #1,重写get_queryset方法,目的在前端显示数据的时候,方便查看 def get_queryset(self): #1,获取数据源 queryset = SPUSpecification.objects.all() #2,给数据源name增加spu.name for spec in queryset: spec.name = "%s - %s"%(spec.spu.name,spec.name) #3,返回数据源 return queryset
-
-
3,序列化器(good/specs_options_serializsers.py)
-
#2,spec规格信息 class SpecSimpleSerializer(serializers.ModelSerializer): class Meta: model = SPUSpecification fields = ("id","name")
-
-
3,spu规格选项添加,修改,删除数据
- 注意点: 由于规格选项使用视图集实现,所以增,删,改全部实现