def admin_edit(request): validation = validate(request) if (validation != True): return validation if (request.method != 'POST'): raise Http404('No such method') pr = None if request.POST['id'] != 'new': pr = Product.objects.get(id=int(request.POST['id'])) serializer = ProductSerializer(pr, data=request.POST) if not serializer.is_valid(): response = HttpResponse('Invalid product object') response.status_code = 400 return response serializer.save() if request.POST['id'] == 'new': os.mkdir(os.path.join(settings.MEDIA_ROOT, str(serializer.data['id']))) copy( os.path.join(settings.STATIC_ROOT, 'img', 'noimg.jpg'), os.path.join(settings.MEDIA_ROOT, str(serializer.data['id']), '0.jpg')) return HttpResponse(serializer.data['id'])
def put(self, request, pk, format=None): cat = Product.objects.get(id=pk) serializer = ProductSerializer(cat, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, product_id): product = self.get_object(product_id) serializer = ProductSerializer(instance=product, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response({'error': serializer.errors})
def post(self, request): 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 set_products(request): # dates = pd.read_csv('D:\Programming\PpP\web\cat.csv') dates = pd.read_csv( 'https://docs.google.com/spreadsheets/d/e/2PACX-1vSgzUi6BNlGD2U6RmJcvT2kiszysNj9WISt746Jo67wtwD2DVJb-Iuwrkj6hL6bgDU1KotRaOS_IJL3/pub?gid=1763850928&single=true&output=csv' ) name = dates['name'].values price = dates['price'].values description = dates['description'].values rating = [random.randint(1, 10) for i in range(len(name))] likes = dates['likes'].values views = dates['views'].values category_id = dates['category_id'].values for i in range(len(name)): di = { 'name': name[i], 'price': price[i], 'description': description[i], 'rating': rating[i], 'likes': likes[i], 'views': views[i], 'category_id': category_id[i] } serializer = ProductSerializer(data=di) if serializer.is_valid(): serializer.save() print('Good') else: print('Bad') return JsonResponse(serializer.errors) return JsonResponse({'Message': 'Good'})
def update(self, request, pk=None): product_to_update = request.data.get('product') serializer = ProductSerializer(data=product_to_update) if serializer.is_valid(raise_exception=True): queryset = Product.objects.all() product = get_object_or_404(queryset, pk=pk) if product_to_update['shop_name'] and product_to_update['shop_name'].isnumeric() and \ Shop.objects.get(pk=product_to_update['shop_name']): product.shop_name = product_to_update['shop_name'] if product_to_update['title']: product.title = product_to_update['title'] if product_to_update['link']: product.link = product_to_update['link'] if product_to_update['description']: product.description = product_to_update['description'] if product_to_update['image_link']: product.image_link = product_to_update['image_link'] product.save() serializer_to_return = ProductSerializer(product) return Response(serializer_to_return.data) else: data = {'error': 'Error Updating Product', 'status_code': 400} error_serializer = ErrorSerializer(data=data) error_serializer.is_valid(True) return Response(error_serializer.data)
def test_product_images(self): result_empty = ProductSerializer( self.product_empty_related).product_images() result = ProductSerializer(self.product).product_images() self.assertEqual(len(result_empty), 0) self.assertNotEqual(len(result), 0)
def post(self, request): serializer = ProductSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response({'error': serializer.errors}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def post(self,request,format=None): serializer= ProductSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data,status=status.HTTP_202_ACCEPTED) else: return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
def put(self, request, id): product = self.get_product(id) serializer = ProductSerializer(instance=product, data=json.loads(request.body)) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_200_OK) return Response(serializer.errors, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def put(self, request, product_id): product = self.get_object(product_id) serializer = ProductSerializer(instance=product, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_202_ACCEPTED) return Response({"error": serializer.errors})
def put(self, request, product_id): product = self.get_object(product_id) serializer = ProductSerializer(instance=product, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_426_UPGRADE_REQUIRED) return Response({'error': serializer.errors}, status=status.HTTP_406_NOT_ACCEPTABLE)
def create(self, request): slr = ProductSerializer(data=request.data, context={'request': request}) if slr.is_valid(): slr.save() return Response(slr.data) else: return Response(slr.errors, status=400)
def put(self, request, pk): product = self.get_object(pk) serializer = ProductSerializer(product, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_200_OK) else: return Response(status=status.HTTP_400_BAD_REQUEST)
def put(self,request,pk,format=None): products=self.get_object(pk) serializer=ProductSerializer(products,data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data,status=status.HTTP_201_CREATED) else: return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
def get(self, request, format=None): if (request.query_params and request.query_params['id']): product = Product.objects.get(pk=request.query_params['id']) serializer = ProductSerializer(product) return Response(serializer.data) products = Product.objects.all() serializer = ProductSerializer(products, many=True) return Response(serializer.data)
def get(self, request): path = os.path.join(settings.MEDIA_ROOT, 'products.json') with open(path, 'r', encoding='utf-8') as f: data = json.load(f) serialized_data = ProductSerializer(data=data['products'], many=True) if not serialized_data.is_valid(): return Response(data=[], content_type='application/json') return Response(data=serialized_data.data)
def post(self, request): serializer = ProductSerializer(data=request.data) if serializer.is_valid(): serializer.save() response_data = {} response_data["success"] = "True" response_data["message"] = "Settings created successfully." return Response(response_data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def update(self, request, pk=None): product = get_object_or_404(Product, pk=pk) slr = ProductSerializer(data=request.data, instance=product, context={'request': request}) if slr.is_valid(): slr.save() return Response(slr.data) else: return Response(slr.errors, status=400)
def put(self, request, pk): product = get_object_or_404(Product, pk=pk) serializer = ProductSerializer(instance=product, data=request.data) if serializer.is_valid(): serializer.save() logger.info(f'Product with ID {serializer.instance} was updated') logger.debug(f'Product with ID {serializer.instance} was updated') return Response(serializer.data) logger.error(f'Product with ID {serializer.instance} cannot be updated') return Response(serializer.errors, status=500)
def product_list(request, format=None): if request.method == 'GET': products = Products.objects.all() serializer = ProductSerializer(products, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = ProductSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) else: return Response(serializer.data, status=status.HTTP_400_BAD_REQUEST)
def products_of_card(request): try: card = Card.objects.get(id=2) except Card.DoesNotExist as e: return Response({'error': str(e)}) if request.method == 'GET': products = card.products.all() serializer = ProductSerializer(products, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = ProductSerializer(data=request.data) return Response(serializer.data)
def product_list(request): if request.method == 'GET': products = Product.objects.all() serializer = ProductSerializer(products, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = ProductSerializer2(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response({'error': serializer.errors}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def post(self, request, id, format=None): serializer = ProductSerializer(data=request.data) if serializer.is_valid(): serializer.save() response = Response(serializer.data, status=status.HTTP_201_CREATED) Log.objects.create(request=request.get_full_path, response=response) return response response = Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) Log.objects.create(request=request.get_full_path, response=response) return response
def put(self, request, company_id, pk): if pk == '0' or company_id == '0': return JsonResponse({'detail': 'ID must be greater than zero.'}, status=status.HTTP_400_BAD_REQUEST) product = Product.objects.get(company_id=company_id, pk=pk) request.data["company"] = company_id serializer = ProductSerializer(product, data=request.data, partial=True) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request): aid = request.GET.get('aid') ad = Product.objects.get(id=aid) serializer = ProductSerializer(ad, data=request.data) # validate and update if serializer.is_valid(): serializer.save() response_data = {} response_data["success"] = "True" response_data["message"] = "Settings updated successfully." return Response(response_data, status=status.HTTP_200_OK) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request): if "prod" in dict(self.request.GET): id = self.request.GET.get("prod") queryset = Product.objects.filter(pk=id) serializer = ProductSerializer(queryset, many=True) img_query = Image.objects.filter(product_photo_connect_id=id) img_serializer = PictureSerializer(img_query, many=True) return Response({ "data": serializer.data, 'img_data': img_serializer.data }) else: queryset = Product.objects.all() serializer = ProductSerializer(queryset, many=True) return Response({"data": serializer.data})
def product_single(request, id, format=None): product = get_object_or_404(Products, id=id) if request.method == 'GET': serializer = ProductSerializer(product) return Response(serializer.data) elif request.method == 'PUT': serializer = ProductSerializer(product, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) else: return Response(serializer.data, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': product.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def test_get_all_products(self): response = Client().get('/api/shop/products/') products = Product.objects.all() serializer = ProductSerializer(products, many=True) self.assertEqual(response.data, serializer.data) self.assertEqual(response.status_code, status.HTTP_200_OK)
def create(self, request): product = request.data.get('product') serializer = ProductSerializer(data=product) if serializer.is_valid(raise_exception=True): db_product = Product.objects.create(product) product_serializer = ProductSerializer(db_product) return Response(product_serializer.data) else: data = {'error': 'Error Creating Product', 'status_code': 400} error_serializer = ErrorSerializer(data=data) error_serializer.is_valid(True) return Response(error_serializer.data)
def recommendationget(request): Username = request.GET.get('username') Airport = request.GET.get('airport') personalizeRt = boto3.client('personalize-runtime', region_name='ap-south-1') response = personalizeRt.get_recommendations( campaignArn= 'arn:aws:personalize:ap-south-1:413538326238:campaign/viman-campaign', userId=Username) listshop = [] listrestro = [] listhotel = [] for i in response['itemList']: print(i['itemId']) pro = Product.objects.get(productid=i['itemId']) ud = userdetails.objects.get(user=pro.user) if ud.airport == Airport.upper(): serial = ProductSerializer(pro) if ud.category == 'STORE': listshop.append(serial.data) elif ud.category == 'RESTAURANTS': listrestro.append(serial.data) elif ud.category == 'HOTEL': listhotel.append(serial.data) return JsonResponse({ 'store': listshop, 'restro': listrestro, 'hotel': listhotel })
def product_list(request): """ List all products, or create a new snippet. """ if request.method == 'GET': products = Product.objects.all() serializer = ProductSerializer(products, many=True) return JSONResponse(serializer.data) elif request.method == 'POST': data = JSONParser().parse(request) serializer = ProductSerializer(data=data) if serializer.is_valid(): serializer.save() return JSONResponse(serializer.data, status=201) return JSONResponse(serializer.errors, status=400)
def test_to_dict(self): result = ProductSerializer(self.product).to_dict() self.assertEqual( result, { "name": "Test Product", "designer": "Test Designer", "site_url": "https://www.testsite.com", "condition": "New", "season": "SS20", "collection": "Test Collection", "category": "Handbags", "brand": "Test Brand", "material": "test materials made of lots of things", "size": "OS", "dimensions": "10in long and 18in wide and 3in depth", "sku": "TESTSKU89012", "product_price": "$1234.56", "stock": [{ "color": "purple", "quantity": 1 }], "images": ["https://www.imageurl.jpeg"], }, )
def product_detail(request, pk): """ Retrieve, update or delete a product. """ try: product = Product.objects.get(pk=pk) except Product.DoesNotExist: return HttpResponse(status=404) if request.method == 'GET': serializer = ProductSerializer(product) return JSONResponse(serializer.data) elif request.method == 'PUT': data = JSONParser().parse(request) serializer = ProductSerializer(product, data=data) if serializer.is_valid(): serializer.save() return JSONResponse(serializer.data) return JSONResponse(serializer.errors, status=400) elif request.method == 'DELETE': product.delete() return HttpResponse(status=204)