def create_order(request, postdata): order = Order() # order.user = None # if request.user.is_authenticated(): # order.user = request.user # данные с формы data = { u"Имя": postdata["first-name"], u"Фамилия": postdata["last-name"], u"Email": postdata["email"], u"Телефон": postdata["phone"], u"Время звонка": postdata["call-time"], u"Область": postdata["region"], u"Город": postdata["city"], u"Улица": postdata["street"], u"Дом": postdata["building"], u"Квартира": postdata["flat"], u"Способ доставки": postdata["ship-method"], u"Номер склада (адрес офиса)": postdata["warehouse"], u"Комментарий к заказу": postdata["comment"], u"Дополнительная информация": postdata["additional_info"], } # добавление данных в модель заказа order.first_name = data[u"Имя"] order.last_name = data[u"Фамилия"] order.email = data[u"Email"] order.phone = data[u"Телефон"] order.call_time = data[u"Время звонка"] order.region = data[u"Область"] order.city = data[u"Город"] order.street = data[u"Улица"] order.building = data[u"Дом"] order.flat = data[u"Квартира"] order.ship_method = data[u"Способ доставки"] order.office = data[u"Номер склада (адрес офиса)"] order.additional_info = data[u"Дополнительная информация"] order.comment = data[u"Комментарий к заказу"] order.ip_address = request.META.get("REMOTE_ADDR") order = Order(**data) order.status = order.SUBMITTED order.save() # отправка почты менеджеру send_mail_manager(data, order) # отправка почты заказчкику if data[u"Email"] != "": send_mail_customer(data, order) # if the order save succeeded if order.pk: cart_items = cart.get_cart_items(request) for ci in cart_items: # create order item for each cart item oi = OrderItem() oi.order = order oi.quantity = ci.quantity oi.price = ci.price # now using @property oi.product = ci.product oi.save() # all set, empty cart cart.empty_cart(request)
if not request.user.is_authenticated(): form._errors.setdefault("__all__", ErrorList()).append("Для заказа авторизируйтесь.") else: try: rpc_srv = conn.TimeoutServerProxy(office.xmlrpc, timeout=2) res = rpc_srv.reserve_car(car_id, start_date.strftime("%Y-%m-%d"), end_date.strftime("%Y-%m-%d")) except Exception, exc: return render(request, 'message.html', {'result': 'Офис не ответил.' + str(exc)}) if res == False: form._errors.setdefault("__all__", ErrorList()).append("Невозможно совершить заказ.") else: order = Order() order.reserve(car_id, car['name'], start_date, end_date) order.office = office order.order = int(res[0]) order.sum = int(res[1]) order.user = request.user order.save() return HttpResponseRedirect(reverse('account:index')) return render(request, 'catalog/detail.html', { 'car': car, 'form': form, }) def reserve(request, office_name, car_id): pass