def dispatch(self, request, *args, **kwargs): # check if cart is empty if cart.is_empty(self.request): #Works! cart_url = urlresolvers.reverse('show_cart') return HttpResponseRedirect(cart_url) else: return super(orderCreate, self).dispatch(request, *args, **kwargs)
def checkout(request): # TODO need to create email temaplates for managers and clients if cart.is_empty(request): return HttpResponseRedirect(urlresolvers.reverse('cart')) form = Checkout() if request.method == 'POST': form = Checkout(request.POST) if form.is_valid(): checkout_form = form.save(commit=False) checkout_form.save() # manager's mail manager_message = '' manager_message_title = u'Новый заказ №:%s' % checkout_form.id for field in form.fields: if form.cleaned_data.get(field): manager_message += "%s: %s\n" % (form.fields.get(field).label, form.cleaned_data.get(field)) mail_managers(manager_message_title, manager_message) # clien's mail email = form.cleaned_data['email'] if email: user_message = u'Спасибо за заказ.\n Номер заказа:%s' % checkout_form.id user_message_title = u'Спасибо за заказ' send_mail(user_message_title, user_message, u'Military shop', [email]) items = cart.get_cart_items(request) for i in items: order = Order.objects.get(id=checkout_form.id) OrderedItems.objects.create(order=order , product=i.product, quantity=i.quantity, price=i.total()) items.delete() cart_items = cart.get_cart_items(request) return {'cart_items': cart_items, 'form': form, 'cart_item_count': cart.distinct_item_count(request)}