def put(self, request, pk, format=None): product = Product.objects.get(id=pk) serializer = ProductSerializer(product, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def product_list(request): if request.method == 'GET': product = Product.objects.order_by('-published') serializer = ProductSerializer(product, many=True, context={'request': request}) return JsonResponse(serializer.data, safe=False)
def __iter__(self): product_ids = self.cart.keys() products = ProductSerializer(Product.objects.filter(id__in=product_ids), context={'request': self.request}, many=True) for product in products.data: self.cart[str(product.get("id"))]['product'] = product # to render product attributes for item in self.cart.values(): item['price'] = int(item['price']) item['total_price'] = item['price'] * item['amount'] yield item
def update_product(request, pk): product = Product.objects.get(id=pk) serializer = ProductSerializer(instance=product, data=request.data, context={'request': request}) serializer.is_valid(raise_exception=True) serializer.save() return Response(serializer.data)
class OrderItemSerializer(serializers.ModelSerializer): product = ProductSerializer() # product = serializers.SerializerMethodField() author = UserSerializer() # order_count = serializers.SerializerMethodField() class Meta: model = OrderItem fields = [ 'id', 'count', 'product', 'author', ]
def get(self, request, format=None): # category_list = request.GET.get('category', None).split(',') car = request.session.get("car")["car_model_id"] cat = request.GET.get("category", None) if cat: categ = Category.objects.get(id=cat) snippets = (Product.objects.filter( car_model=car, category__in=categ.get_descendants( include_self=True)).distinct().order_by("name")) else: snippets = Product.objects.filter( car_model=car).distinct().order_by("name") serializer = ProductSerializer(snippets, many=True) return Response(serializer.data)
def create_product(request): serializer = ProductSerializer(data=request.data) serializer.is_valid(raise_exception=True) message = 'Succesfull update' serializer.save() return Response(serializer.data, message, status=HTTP_201_CREATED)
def get_product(request, pk): products = Product.objects.get(id=pk) serializer = ProductSerializer(products, many=False, context={'request': request}) return Response(data=serializer.data, status=HTTP_200_OK)
def all_product(request): products = Product.objects.filter(is_published=True) serializer = ProductSerializer(products, many=True, context={'request': request}) return Response(data=serializer.data, status=HTTP_200_OK)
def post(self, request, format=None): serializer = ProductSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request, pk): product = Product.objects.get(id=pk) serializer = ProductSerializer(product, many=False) return Response(serializer.data)
def get(self, request, *args, **kwargs): products = Product.objects.all() serializer = ProductSerializer(products, many=True, context={'request': request}) return Response(serializer.data)
def get(self, request, pk): product = self.get_object(pk) serializer = ProductSerializer(product) return Response(serializer.data)