def create_order(request): args = { 'user': request.user, 'form': OrderForm(), 'delivery_mass': DeliveryType.objects.all(), 'user_active': request.user.is_authenticated(), 'cart_sum': get_sum(request), } args.update(csrf(request)) is_valid = True if request.user.is_authenticated(): ord = Order() ord.first_name = request.user.first_name ord.last_name = request.user.last_name ord.email = request.user.email ord.phone = request.user.phone ord.index = request.user.index ord.address = request.user.address # index args['form'] = OrderForm(instance=ord) if request.POST: if request.POST.get('delivery', "") == "": args['delivery_error'] = "- выберите тип доставки" is_valid = False form = OrderForm(request.POST) if is_valid and form.is_valid(): order = form.save(commit=False) delivery = DeliveryType.objects.get(id=request.POST['delivery']) order.delivery = delivery.title order.delivery_price = delivery.price order.status = 0 if request.user.is_authenticated(): order.user = request.user order.sum = delivery.price + get_sum(request) order.save() cart = get_cart(request) if cart: for pr in CartProduct.objects.filter(cart=cart): pr.cart = None pr.save() order.products.add(pr) else: args['cart_error'] = "в вашей корзине ничего нет" order.save() if request.user.is_authenticated(): request.user.first_name = request.POST.get('first_name', "") request.user.last_name = request.POST.get('last_name', "") request.user.phone = request.POST.get('phone', "") request.user.address = request.POST.get('address', "") request.user.index = request.POST.get('index', "") request.user.save() email = request.POST.get('email', "") t = get_template('create_order_sender.html') html_content = t.render(Context({ 'hello': 'Спасибо за заказ на <a href="http://darya-shop.ru">darya-shop.ru</a>!', 'user_active': request.user.is_authenticated(), 'order': order, 'order_status': STATUSES_LIST[order.status], 'products': order.products.all(), })) msg = EmailMultiAlternatives("Заказ на Darya-Shop", html_content, "*****@*****.**", [email, "*****@*****.**"]) msg.attach_alternative(html_content, "text/html") msg.send() return redirect("/orders/thanks/") args['form'] = form return render_to_response("create_order.html", args)