def get_common_context(request): c = {} form = OrderForm() if request.method == 'POST': form = OrderForm(request.POST) if form.is_valid(): form.save(request.POST['action']) if request.POST['action'] == 'request': c['order_ok'] = True else: c['feedback_ok'] = True form = OrderForm() c['form'] = form c['request_url'] = request.path c['is_debug'] = settings.DEBUG c['phone'] = config_value('MyApp', 'PHONE') ORDERS_COUNT = int(config_value('MyApp', 'ORDERS_COUNT')) c['oc_3'] = ORDERS_COUNT % 10 ORDERS_COUNT = ORDERS_COUNT / 10 c['oc_2'] = ORDERS_COUNT % 10 c['oc_1'] = ORDERS_COUNT / 10 c.update(csrf(request)) return c
def create(request): print(request.POST) if request.method == "POST": form = OrderForm(request.POST) form.save() request.session.clear() return redirect("/")
def form_valid(self, request): if self.request.method == 'POST': form = OrderForm(self.request.POST, self.request.FILES) if form.is_valid(): form.save() return HttpResponse("order created!!!") return render(request, self.template_name, {'form': form}) else: return render(request, self.template_name)
def create(request): print(request.POST) if request.method == "POST": form = OrderForm(request.POST) form.save() return redirect("/order") else: form = OrderForm() return render(request, "order/create.html", {'form': form})
def update(request, id): order = Order.objects.get(order_id=id) if request.method == "POST": form = OrderForm(request.POST, instance=order) form.save() return redirect("/order") else: form = OrderForm(instance=order) return render(request, "order/edit.html", {'form': form})
def order(request): c = get_common_context(request) #c.update({'p': Page.get('order', c['lang'])}) if request.method == 'GET': c.update({'form': OrderForm()}) elif request.method == 'POST': form = OrderForm(request.POST, request.FILES) if form.is_valid(): form.save() form = OrderForm() c['feedback_ok'] = True c.update({'form': form}) return render_to_response('order.html', c, context_instance=RequestContext(request))
def order(request): c = get_common_context(request) form = OrderForm() # filter real countries c["countries"] = Country.objects.filter(wt_4=False) if request.method == "POST": form = OrderForm(request.POST) if form.is_valid(): form.save() c["order_ok"] = True form = OrderForm() c["form"] = form return render_to_response("order.html", c, context_instance=RequestContext(request))
def Order(request): ''' Render the order page ''' template = 'order/order.html' if request.method == 'GET': return render(request, template, {'orderForm': OrderForm()}) orderForm = OrderForm(request.POST) if not orderForm.is_valid(): return render(request, template, {'orderForm': OrderForm}) orderForm.save() return render(request, 'main/main.html')
def post(self, request, *args, **kwargs): form = OrderForm(request.POST or None) customer = Customer.objects.get(user=request.user) if form.is_valid(): new_order = form.save(commit=False) new_order.customer = customer new_order.first_name = form.cleaned_data['first_name'] new_order.last_name = form.cleaned_data['last_name'] new_order.phone = form.cleaned_data['phone'] new_order.address = form.cleaned_data['address'] new_order.delivery_type = form.cleaned_data['delivery_type'] new_order.order_date = form.cleaned_data['order_date'] new_order.comment = form.cleaned_data['comment'] new_order.save() self.cart.in_order = True self.cart.save() new_order.cart = self.cart new_order.save() customer.orders.add(new_order) messages.add_message( request, messages.INFO, f'Благодарим за заказ, {new_order.first_name}! Заказ будет обработан в течение 30 минут' ) return HttpResponseRedirect('/') return HttpResponseRedirect('/checkout/')
def order_create(request): cart = Cart(request) user = request.user if request.method == 'POST': form= OrderForm(user,request.POST) order = form.save(commit = False) order.user = user order.save() for item in cart: OrderItem.objects.create(order= order, book = item.book , quantity= item.quantity) cart.clear() return redirect('order:order_detail', order_id = order.order_id) else: form = OrderForm(user) categories =[] for item in cart: category = item.book.category if category not in categories: categories.append(category) if categories: related_books = Book.objects.filter(category = categories[0]) if len(categories)>1: for category in categories[1:]: related_books= related_books|(Book.objects.filter(category = category)) related_books = related_books[:5] return render(request,'order/order_form.html',{'cart':cart, 'form':form,'related_books':related_books})
def order(request): c = get_common_context(request) if request.method == "POST": if "step" in request.POST: step = int(request.POST["step"]) res = [] sum_price = 0 for k, v in request.POST.iteritems(): if k.startswith("field_") and int(v) > 0: item = Item.get(int(k[6:])) count = int(v) res.append((item, count)) sum_price += item.price * count c["sum_price"] = sum_price c["order_content"] = res if step == 1: c["form"] = OrderForm() return render_to_response("order.html", c, context_instance=RequestContext(request)) elif step == 2: form = OrderForm(request.POST) if form.is_valid(): ord = form.save() print ord for item, count in res: OrderContent(order=ord, item=item, count=count).save() ord.send_email() return render_to_response("order_ok.html", c, context_instance=RequestContext(request)) else: c["form"] = form return render_to_response("order.html", c, context_instance=RequestContext(request)) else: raise Http404() else: raise Http404()
def post(self, request, *args, **kwargs): form = OrderForm(request.POST, prefix='order') user = UserOrderForm(request.POST, prefix='user') if user.is_valid(): user = user.save() elif not request.POST.get('phone') or not request.POST.get('name'): user = User.objects.get(name='Администратор') if form.is_valid(): cart = Cart() cart.session_id = request.session.session_key cart.save() order = form.save(commit=False) order.user = user order.cart = cart order.save() return JsonResponse({ 'result': True, 'href': '/order/edit/%s' % order.id, 'item_id': order.id }) else: return JsonResponse({ 'errors': form.errors, 'user-errors': user.errors })
def order(request): if request.POST: form = OrderForm(request.POST) if form.is_valid(): order = form.save(commit=False) else: return render_to_response("order.html",{"form":form},context_instance=RequestContext(request)) try: cart = Cart.objects.get(id = request.session.get("cart")) except: return HttpResponse("Server Error") cart.status = 'off' cart.save() order.cart = cart order.delivery = cart.delivery del request.session['cart'] order.serial = serial_generator() order.save() #mailing(order,request) for i in cart.items.all(): i.size.stock-=i.quantity i.size.save() return render_to_response("thanks.html",{ "order":order }, context_instance=RequestContext(request)) else: form = OrderForm() return render_to_response("order.html",{"form":form},context_instance=RequestContext(request))
def add_order(request): if request.method == 'POST': form = OrderForm(request.POST) if form.is_valid(): form.save() return redirect(index) else: print(form.errors) else: context = {'form':OrderForm()} return render(request, 'add_order.html',context)
def order_page(request): c = get_common_context(request) c.update(pages.views.get_page('order')) if request.POST: form = OrderForm(request.POST) if form.is_valid(): form.save() form = OrderForm() c['done'] = True messages.success(request, u'Ваш заказ успешно отправлен.') else: form = OrderForm() c['form'] = form return render_to_response('vn.html', c, context_instance=RequestContext(request))
def orderCreate(request): ''' Create a new order instance 1. If method is GET, render an empty form 2. If method is POST, perform form validation and display error messages if the form is invalid 3. Save the form to the model and redirect the user to the article page ''' template = 'order/orderCreate.html' if request.method == 'GET': return render(request, template, {'orderForm':OrderForm()}) # POST orderForm = OrderForm(request.POST) if not orderForm.is_valid(): return render(request, template, {'orderForm':orderForm}) orderForm.save() return render(request, 'main/main.html')
def add_order(request): if request.method == "POST": form = OrderForm(request.POST) if form.is_valid(): form.save() return redirect(order_index) else: print(form.errors) else: context = {"form": OrderForm()} return render(request, "add_order.html", context)
def veg_food_view(request): veg_types = FoodItem.objects.filter( food_super_class__class_name__contains="veg") veg_dict = {'veg_records': veg_types} form = OrderForm() if request.method == "POST": form = OrderForm(request.POST) if form.is_valid(): form.save(commit=True) return redirect('type/') else: print("Error") return render(request, 'order/veg_food.html', { 'form': form, 'veg_records': veg_dict })
def orderCreate(request): ''' Create a new article instance 1. If method is GET, render an empty form 2 . If method is POST, perform form validation. Display error messages if the form is invalid 3. Save the form to the model and redirect to the article page ''' template = 'order/orderCreate.html' if request.method == 'GET': print(OrderForm()) return render(request, template, {'orderForm': OrderForm()}) # POST orderForm = OrderForm(request.POST) if not orderForm.is_valid(): return render(request, template, {'orderForm': orderForm}) orderForm.save() messages.success(request, '訂單已傳送') return redirect('order:order')
def update_order(request, order_id): order = get_object_or_404(Cust_order, pk=order_id) order_form = OrderForm(request.POST or None, instance=order) if request.method == 'POST': if order_form.is_valid(): order_form.save() return HttpResponseRedirect(reverse('admin_app:order_report')) else: print(order_form.errors) else: context = { 'order_form': order_form, 'order_id': order_id, } return render(request, 'admin_app/order_form.html', context=context)
def create_order(request): if request.method == 'POST': orderForm = OrderForm(request.POST) if orderForm.is_valid(): order = orderForm.save() return redirect(order) else: orderForm = OrderForm() return { 'orderForm': orderForm, }
def OrderView(request,order_id=None): if order_id: order = Order.objects.filter(pk=order_id) else: order = Order() NestedFormset = inlineformset_factory(Order,DetailOrder,form=DetailForm,can_delete=True) if request.method == 'POST': main_form = OrderForm(request.POST, instance=order) detail_form = NestedFormset(request.POST, request.FILES, instance=order) if main_form.is_valid() and detail_form.is_valid(): main_form.save() detail_form.save() return HttpResponseRedirect('summary') else: main_form = OrderForm(instance=order) detail_form = NestedFormset(instance=order) return render_to_response('order.html', {'main_form':main_form,'detail_form':detail_form},context_instance=RequestContext(request))
def post(self, request, *args, **kwargs): order = Order.objects.get(id=kwargs.get['id']) user = UserOrderForm(request.POST, prefix="user", instance=order.user) order = OrderForm(request.POST, prefix="order", instance=order) if user.is_valid(): user.save() else: return JsonResponse({ 'errors': user.errors, 'non-field': user.non_field_errors() }) if order.is_valid(): order.save() else: return JsonResponse({ 'errors': order.errors, 'non-field': order.non_field_errors() }) return JsonResponse({'result': True})
def place_order(request): if request.method == "POST": form = OrderForm(request.POST, request.FILES) if form.is_valid(): data = form.save(commit=False) custm_user = CustomUser.objects.filter(user=request.user).first() data.user = custm_user data.save() return HttpResponseRedirect(reverse('home')) else: form = OrderForm() return render(request, "order/index.html", {'form': form})
def listing(request, listing_id): """Страница listing""" listing = get_object_or_404(Listing, pk=listing_id) form = OrderForm(request.POST or None, initial={'listing': listing} ) if request.method == "POST": if form.is_valid(): form.save() send_mail('Заявка от torrehome.ru', 'Зайдите в админку чтобы почетать заявку', 'torrehome.ru/admin/', ['*****@*****.**'], fail_silently=False) return HttpResponseRedirect("{}?sended=True".format(reverse('listing', kwargs={'listing_id': listing_id})), ) context = { 'listing': listing, 'form' : form, 'sended': request.GET.get("sended", False) } return render(request, 'listings/listing.html', context)
def order(request): context = {} basket = Basket.get_session_basket(request.session._session_key) # if not basket['goods_count']: # return HttpResponseRedirect('/') if request.method.lower() == 'post': order_form = OrderForm(request.POST, basket_summary=basket['summary']) context['show_form'] = True if order_form.is_valid(): order_instance = order_form.save(commit=False) order_instance.delivery_price = order_form.cleaned_data['delivery_price'] order_instance.delivery_type = order_form.cleaned_data['delivery_type_label'] order_instance.delivery_time = order_form.cleaned_data['delivery_time'] order_instance.make_order(request.session.session_key) send_order_email(order_instance, request.META.get('HTTP_HOST')) if order_instance.pay_type not in ('nal', 'nalk'): # оплата онлайн payment_url = WalletonePaymentForm(initial={ 'WMI_PAYMENT_AMOUNT': order_instance.total_price(), 'WMI_PAYMENT_NO': order_instance.id, 'WMI_DESCRIPTION': u'%s заказ №%s' % (request.get_host(), order_instance.id) }, host=settings.HOST).get_redirect_url() return HttpResponseRedirect(payment_url) else: # оплата наличными return HttpResponseRedirect(reverse('ordered', args=(order_instance.id, ))) else: order_form = OrderForm(basket_summary=basket['summary']) context['for_order'] = True context['order_form'] = order_form context['delivery_types'] = DELIVERY_TYPES context['pay_types'] = PAY_TYPES context['free_delivery_price'] = FREE_DELIVERY_PRICE context['add_toy_price'] = ADD_TOY_PRICE add_goods_filter = Q(show_in_bouquets=True) context['add_goods'] = list(Bouquet.active_objects().filter(add_goods_filter)) context['add_goods'].extend(list(Unusual.active_objects().filter(add_goods_filter))) context['add_goods'].extend(list(Special.active_objects().filter(add_goods_filter))) shuffle(context['add_goods']) return render(request, 'order.html', context)
def post(self, request, client_id): """Save order and redirect to order list.""" form = OrderForm(request.POST) client = get_object_or_404(Client, id=client_id) if form.is_valid(): new_order = form.save(commit=False) new_order.client = client new_order.save() return redirect('order:orders') else: return render(request, 'order/add-order.html', { 'form': form, 'func': 'Add', 'client': client })
def post(self, request, id): """Save order and redirect to order list.""" order = get_object_or_404(Order, id=id) client = get_object_or_404(Client, id=order.client.id) form = OrderForm(request.POST, instance=order) if form.is_valid(): new_order = form.save(commit=False) new_order.client = client new_order.save() return redirect('order:orders') else: return render(request, 'order/add-order.html', { 'form': form, 'func': 'Update', 'order': order })
def new_order(request): orderer_form = OrdererForm(request.POST) order_form = OrderForm(request.POST) if orderer_form.is_valid() and order_form.is_valid(): orderer = orderer_form.save() order = order_form.save(commit=False) order.orderer = orderer order.save() for meatInfo in MeatPrice.objects.all(): meatOrder = MeatOrder(order=order, meat_price=meatInfo, count=request.POST[meatInfo.name]) meatOrder.save() return redirect(reverse('order:view_order', args=[orderer.id]))
def index(request): cart = get_cart(request) items = CartItem.objects.filter(cart=cart) if request.method == 'POST': voucher_code = request.POST.get('voucher_code', None) form = OrderForm(request.POST) if form.is_valid(): order = form.save(commit=False) order.discount_total = cart.discount_total order.gross_total = cart.gross_total order.net_total = cart.net_total order.user = request.user order.voucher_code = voucher_code order.order_id = '' order.billing_post_code = request.POST['billing_zip'] order.billing_county = request.POST['billing_county'] order.billing_district = request.POST['billing_district'] order.shipping_post_code = request.POST['shipping_zip'] order.shipping_county = request.POST['shipping_county'] order.shipping_district = request.POST['shipping_district'] order.save() request.session.save() request.session['order'] = order if order.payment_method == 0: return redirect('order-paypal') else: return redirect('order-success') else: profile = request.user.profile form = OrderForm(initial={ 'billing_recipient': request.user.get_name(), 'billing_phone' : profile.phone, 'billing_address': profile.address, 'billing_country': profile.country, 'payment_method': 0, 'reciept_type': 0, 'dispatch_time': 0, } ) try: voucher = request.session['voucher'] except KeyError: voucher = None return render(request, 'order/index.html', {'cart': cart, 'form': form, 'items': items, 'voucher': voucher})
def user_dash_view(request): orders = Order.objects.filter( user_details=request.user).order_by('-date_of_order') if (request.user.user_type == 'U'): if request.method == "POST": form = OrderForm(request.POST) if form.is_valid(): order = form.save(commit=False) order.user_details = request.user order.status = 'P' order.save() # return redirect() else: form = OrderForm() return render(request, 'user/userhome2.html', { 'orders': orders, 'form': form })
def plantBuy(request, plantId): template = 'shop/buyInfo.html' plant = get_object_or_404(Plant, id=plantId) context = {} if request.method == 'GET': context.update({ 'plant': plant, 'orderForm': OrderForm( initial={ 'name': request.user.fullName, 'email': request.user.email, 'address': request.user.address, 'plantName': plant.plantName }) }) return render(request, template, context) # POST orderForm = OrderForm(request.POST) print(orderForm) if not orderForm.is_valid(): return render(request, template, { 'plant': plant, 'orderForm': orderForm }) if plant.newPrice: realPrice = plant.newPrice else: realPrice = plant.price order = orderForm.save(commit=False) order.plant = plant order.customer = request.user order.totalPrice = realPrice order.save() messages.success(request, '購買成功') if request.user not in plant.buyes.all(): plant.buyes.add(request.user) plant.inventory = plant.inventory - 1 plant.save() return redirect('shop/shop.html')
def order(request): c = get_common_context(request) if request.method == 'POST': if 'step' in request.POST: step = int(request.POST['step']) res = [] sum_price = 0 for k, v in request.POST.iteritems(): if k.startswith('field_') and int(v) > 0: item = Item.get(int(k[6:])) count = int(v) res.append((item, count)) sum_price += item.price * count c['sum_price'] = sum_price c['order_content'] = res if step == 1: c['form'] = OrderForm() return render_to_response( 'order.html', c, context_instance=RequestContext(request)) elif step == 2: form = OrderForm(request.POST) if form.is_valid(): ord = form.save() print ord for item, count in res: OrderContent(order=ord, item=item, count=count).save() ord.send_email() return render_to_response( 'order_ok.html', c, context_instance=RequestContext(request)) else: c['form'] = form return render_to_response( 'order.html', c, context_instance=RequestContext(request)) else: raise Http404() else: raise Http404()
def confirm_order(request, unit_id): has_profile = __user_has_profile(request.user) if has_profile != None: return has_profile oc = OrderCarts(request.session,unit_id) unit = oc.get_unit() total_sum = oc.get_total_sum() oc.update_prices() oc.check_and_show_odd_promotion_message(request) if not unit.is_open(): messages.warning(request, _('This restaurant is now closed! Please check the open hours and set desired delivery time accordingly.')) if unit.minimum_ord_val > total_sum: messages.error(request, _('This restaurant has a minimum order value of %(min)d') % {'min': unit.minimum_ord_val}) return redirect('restaurant:detail', unit_id=unit.id) """if current_order.address and not current_order.address.geolocation_error: src = (unit.latitude, unit.longitude) dest = (current_order.address.latitude, current_order.address.longitude) dist = distance.distance(src, dest) if dist.km > unit.delivery_range: messages.warning(request, _('We are sorry, you are not in the delivery range of this restaurant.')) return redirect('restaurant:detail', unit_id=unit.id)""" if request.method == 'POST': form = OrderForm(request.POST) form.unit = unit if form.is_valid(): order = form.save(commit=False) paid_with_bonus = 'paid_with_bonus' in form.data construct_order(request, oc, unit, order, paid_with_bonus) if not unit.is_open(): return redirect('restaurant:detail', unit_id=unit.id) return redirect('order:timer', order_id=order.id) else: form = OrderForm() form.fields['delivery_type'] = forms.ModelChoiceField(unit.delivery_type.all(), required=True, initial={'primary': True}) form.fields['address'] = forms.ModelChoiceField(queryset=DeliveryAddress.objects.filter(user=request.user), required=True, initial={'primary': True}) profile = request.user.get_profile() show_pay_with_bonus = profile and profile.get_current_bonus() > total_sum if show_pay_with_bonus: messages.info(request, _('Congratulations! You have enough bonus to pay for your order. Please check "Pay using bonus" to use it.')) form.fields['paid_with_bonus'] = forms.BooleanField(label=_('Pay using bonus'), help_text=_('We shall use the minimum number of received bonuses enough to cover the order total amount'), required=False) return locals()
def new_order(request): orderer_form = OrdererForm(request.POST) order_form = OrderForm(request.POST) if orderer_form.is_valid(): orderer = orderer_form.save(commit=False) if orderer.is_exist(): orderer = Orderer.objects.get(username=orderer.get_username()) else: orderer.username = orderer.get_username() orderer.save() if order_form.is_valid(): order = order_form.save(commit=False) order.orderer = orderer order.save() for meatInfo in MeatPrice.objects.all(): meat_order = MeatOrder(order=order, meat_price=meatInfo, count=request.POST[meatInfo.name]) meat_order.save() order.send_order_email() return redirect(reverse('order:view_order', args=[orderer.id]))
def create_order(request): """使用 cart 的数据创建 order""" cart = Cart(request) if request.method == 'POST': order_form = OrderForm(request.POST) if order_form.is_valid(): # create order order = order_form.save(commit=False) order.customer = request.user order.email = request.user.email if cart.coupon: order.coupon = cart.coupon order.discount = cart.coupon.discount order.save() # create order_item for item in cart: OrderItem.objects.create(order=order, product=item['product'], price=item['price'], quantity=item['quantity']) cart.clear() # store order id request.session['order_id'] = order.id # send notice mail by celery order_created.delay(order.id) # 推荐计分 recommender = Recommender() recommender.cal_products_bought( [item.product for item in order.items.all()]) # 重定向到支付页 return redirect('order:payment_process') else: order_form = OrderForm() return render(request, 'order/create.html', { 'order_form': order_form, 'cart': cart })
def order_detail(request): cart = Cart(request) if request.method == "POST": form = OrderForm(request.POST) if form.is_valid: order = form.save() for item in cart: print(item['product']) print(item['price']) OrderItem.objects.create(order=order, product=item['product'], quantity=item['quantity'], price=item['price']) cart.clear() new_order = order print('ZAKAZ', order.id) return render(request, 'order/thanks_order.html', {'order': new_order}) else: form = OrderForm() return render(request, 'order/order_detail.html', { 'form': form, 'cart': cart })
def get_common_context(request): form = OrderForm() hform = OrderHForm() fform = OrderFForm() c = {} if request.method == 'POST': if request.POST['action'] == 'subscribe': em = request.POST.get('email', None) if em: Subscribe(email=em).save() messages.success(request, u'Вы успешно подписались на рассылку.') else: messages.error(request, u'Необходимо ввести емейл.') elif request.POST['action'] == 'homeform': hform = OrderHForm(request.POST) if hform.is_valid(): hform.save() messages.success(request, u'Ваша заявка успешно отправлена.') hform = OrderHForm() else: c['show_hform'] = True messages.error(request, u'Необходимо ввести имя и телефон.') elif request.POST['action'] == 'franchajzing': fform = OrderFForm(request.POST) if fform.is_valid(): fform.save() messages.success(request, u'Ваша заявка успешно отправлена.') fform = OrderFForm() else: print fform.errors c['show_fform'] = True messages.error(request, u'Необходимо ввести имя и телефон.') else: form = OrderForm(request.POST) if form.is_valid(): form.save() c['request-ok'] = True else: if request.POST['action'] == 'signup': c['show_signup'] = True if request.POST['action'] == 'get': c['show_get'] = True if request.POST['action'] == 'gift': c['show_gift'] = True messages.error(request, u'Необходимо ввести имя.') c['request_url'] = request.path c['is_debug'] = settings.DEBUG c['reviews'] = Review.objects.all()[:3] c['form'] = form c['hform'] = hform c['fform'] = fform c['menu'] = Menu.objects.filter(parent=None) c['partners'] = Partner.objects.all() c['complex'] = Page.get_by_slug('complex').content try: c['menu_cat'] = Menu.get_by_href(request.path).parent except: c['menu_cat'] = None c['siteurl'] = request.get_host().split('.')[0] c['phone'] = config_value('MyApp', 'PHONE') c.update(csrf(request)) return c
def create_order(request): cart = Cart(request) # 'if cart.products:' 를 별도로 구성하여 '장바구니가 비었습니다' 안내 페이지로 이동시킬 수 있음 # 현재 구성은 장바구니가 비어있을 경우, 빈 폼 로드 products = cart.products # cart에 담긴 아이템들 total_price = cart.get_total_price() # 총 가격 if products.exists() and request.method == 'POST': form = OrderForm(request.POST) if form.is_valid(): order_item_list = [] order = form.save(commit=False) order.total_price = total_price order.user = request.user order.save() # dict-type의 Product 객체 생성 product_bulk = products.in_bulk() for item in cart: order_item_obj = OrderWithItem(order=order, item=item['product'], price=int(item['price']) * int(item['quantity']), quantity=item['quantity']) # OrderWithItem 객체를 리스트에 추가 order_item_list.append(order_item_obj) product_bulk[item['product'].id].quantity -= item['quantity'] # 사용자 동작 if request.user.is_authenticated: pass # user=Foreignkey(User) 이므로 request.user가 authenticated user가 아닐 경우 에러 발생 # track_action(user=request.user, verb='bought', content_object=item['product']) # bulk_create를 이용한 OrderWithItem db 생성 order_items = OrderWithItem.objects.bulk_create(order_item_list) # bulk_update를 이용한 Product.quantity 업데이트(release version2.2) products.bulk_update(product_bulk.values(), ['quantity']) # 함께 구매한 아이템 등록 r = Recommend() try: r.buy_item(products) print('bought in redis') except Exception as e: print(f'not connect redis:{e}') # for order_item in order_items: # print(order_item.order.id) # 주문번호 # print(order_item.item) # 아이템 # print(order_item.price) # 가격 # print(order_item.quantity) # 수량 # 주문 완료 시, 장바구니(session) 비우기 cart.clear_session() return render(request, 'order/created.html', {'order': order, 'order_items': order_items}) # order -> 주문번호, 사용자 성, 이름, 주소, 구매 총 가격 # order_item -> 구매 아이템 수량, 가격 else: user = User.objects.get(id=request.user.id) form = OrderForm( initial={'first_name': user.first_name, 'last_name': user.last_name, 'address': user.profile.address, 'post_code': user.profile.postal_code}) print(form['address']) return render(request, 'order/create.html', {'cart': cart, 'form': form})