def get(self, request): id = request.query_params.get('id') goods = Goods.objects.get(id=id) cat = goods.category cat_par = cat.parent cat_data = SonSerializer(cat).data cat_data_par = SonSerializer(cat_par).data cat_data['parent'] = cat_data_par recommend_goods = Goods.objects.filter(category_id=cat.id).exclude( id=id) recommend_goods = GoodsSerializer(recommend_goods, many=True).data cat_data['recommend_goods'] = recommend_goods goods_data = GoodsSerializer(goods).data goodsalbum_set = goods.goodsalbum_set.all() goodsalbum_set = GoodsAlbumSerializer(goodsalbum_set, many=True).data goods_data['goodsalbum_set'] = goodsalbum_set cat_data['goods'] = goods_data return Response(cat_data)
def post(self, request): post = GoodsSerializer(data=request.data) if post.is_valid(): try: temp = Product.objects.get(name=post.data["name"]) return Response('existed!') except ObjectDoesNotExist: p = GoodsSerializer.create(post, request.data) return Response({'id': p.id}) else: return Response({'result': 404})
def put(self, request): get = request.GET if get.get('id'): try: p = Product.objects.get(id=request.GET['id']) serializer = GoodsSerializer(data=request.data) if serializer.is_valid(): GoodsSerializer.update(serializer, p, request.data) return Response({'result': 200}) return Response(serializer.errors) except ValueError: return Response('Illegal Input') except ObjectDoesNotExist: return Response({'result': 404}) return Response('please input an id')
class UserFavDetailSerializer(serializers.ModelSerializer): # 获取详细的外键信息 goods = GoodsSerializer() class Meta: model = UserFav fields = ("goods", "id")
class UserFavDetailSerializer(serializers.ModelSerializer): goods = GoodsSerializer() class Meta: model = UserFav fields = ('goods', 'id')
class ShoppingCartDetailSerializer(serializers.ModelSerializer): goods = GoodsSerializer() class Meta: model = ShoppingCart fields = "__all__"
class ShoppingCartDetailSerializers(serializers.ModelSerializer ): #只希望序列化goods_id,不希望序列化其他字段 goods = GoodsSerializer() class Meta: model = ShoppingCart fields = '__all__'
class OrderGoodsSerialzier(serializers.ModelSerializer): # 显示外键的详细信息 goods = GoodsSerializer(many=False) # 暂时发现many=False与""没有区别 class Meta: model = OrderGoods fields = "__all__"
class OrderGoodsSerializer(serializers.ModelSerializer): goods = GoodsSerializer() class Meta: model = OrderGoods fields = "__all__"
class ShopCartDetailSerializer(serializers.ModelSerializer): goods = GoodsSerializer(many=False, read_only=True) # 一个ShopCart记录对应只有一个Goods class Meta: model = ShoppingCart fields = ("goods", "nums")
def get(self, request): get = request.GET try: if get.get('id'): a = get.get('id') temp = Product.objects.get(id=a) return Response(GoodsSerializer(temp).data) else: type_id = get.get('type_id') count_pp = get.get('count_pp') page = get.get('page') temp = Product.objects.filter(type_id=type_id) return Response({'product': [GoodsSerializer(j).data for j in temp]}) except ValueError: return Response('Illegal Input') except ObjectDoesNotExist: return Response({'result': 404})
def get(self, request): top = Goods.objects.filter(is_red=1)[:4] top = GoodsSerializer(top, many=True).data data = {'is_red': top} return Response(data)
class ShopCartDetailSerializer(serializers.ModelSerializer): goods = GoodsSerializer(many=False, read_only=True) class Meta: model = ShoppingCart fields = ("goods", "nums","user") extra_kwargs = { "goods":{"lookup_field":"goods_id"} }
class ShopCartDetailSerializer(serializers.ModelSerializer): ''' 购物车商品详情信息 ''' # 一个购物车对应一个商品 goods = GoodsSerializer(many=False, read_only=True) class Meta: model = ShoppingCart fields = ("goods", "nums")
def list(self, request, *args, **kwargs): res = [] favorites = Favorite.objects.filter(user=request.user) for instance in favorites: good = Good.objects.get(id=instance.good.id) good = GoodsSerializer(good).data good['images'][0][ 'image'] = 'http://127.0.0.1:8000' + good['images'][0]['image'] good['detail'] = 'http://127.0.0.1:8000' + good['detail'] res.append(good) return Response(res)
class UserFavDetailSerializer(serializers.ModelSerializer): ''' 用户收藏详情 ''' # 通过商品id获取收藏的商品,需要嵌套商品的序列化 goods = GoodsSerializer() class Meta: model = UserFav fields = ("goods", "id")
def retrieve(self, request, *args, **kwargs): res = {} instance = Favorite.objects.filter(user=request.user, good__id=kwargs.get('good_id', 0)) if len(instance) > 0: res['code'] = 0 good_id = instance[0].good.id good = Good.objects.get(id=good_id) res['good'] = GoodsSerializer(good).data else: res['code'] = 1 return Response(res)
class UserFavDetailSerializer(serializers.ModelSerializer): """ 用户收藏详情 """ goods = GoodsSerializer() class Meta: model = UserFav fields = ( "goods", "id", )
def get(self, request): cat_id = request.query_params.get('category_id') ordering = request.query_params.get('ordering') cat = GoodsCategory.objects.get(id=cat_id) if cat.parent_id == 0: pass if ordering: goods = Goods.objects.filter( category_id=cat_id).order_by(ordering).all() else: goods = Goods.objects.filter(category_id=cat_id).all() goods_data = GoodsSerializer(goods, many=True).data return Response(goods_data)
def get(self, request): bcats = GoodsCategory.objects.filter(parent=0) # bcats=CateSerializer(bcats,many=True).data lis = [] for bcat in bcats: bcat_data = CateSerializer(bcat).data scats = bcat.goodscategory_set.all() ids = [] for scat in scats: ids.append(scat.id) goods = Goods.objects.filter(category_id__in=ids)[:5] goods = GoodsSerializer(goods, many=True).data bcat_data['goods'] = goods lis.append(bcat_data) return Response(lis)
def get(self, request): # 返回前所有商品的前10条数据 goods_list = Goods.objects.all()[:10] serializer = GoodsSerializer(goods_list, many=True) return Response(serializer.data)
class ShopCartDetailSerializer(serializers.ModelSerializer): goods = GoodsSerializer(many=False) class Meta: model = Cart fields = '__all__'
class ShoppingCartDetailSerializer(serializers.ModelSerializer): goods = GoodsSerializer(many=False, read_only=True) class Meta: model = ShoppingCart fields = ('goods', 'nums')
class CartSerializer(serializers.ModelSerializer): c_goods = GoodsSerializer() class Meta: model = Cart fields = '__all__'
class UserFavDetailSerializer(serializers.ModelSerializer): goods = GoodsSerializer() class Meta: model = UserFav fields = ["goods", "id"]
class OrderGoodsSerialzier(serializers.ModelSerializer): goods = GoodsSerializer(many=False) class Meta: model = OrderGoods fields = "__all__"