def render_change_form(self, request, context, add=False, change=False, form_url='', obj=None): order = Order.objects.get(pk=int(context['object_id'])) context['soups'] = soups_from_basket_(order.basket)['data'] return super(OrderModelAdmin, self).render_change_form(request, context, add=add, change=change, form_url=form_url, obj=obj)
def post(self, request, *args, **kwargs): form = OrderForm(request.POST) if not form.is_valid(): return self.render_to_response(context={'form': form, 'errors': form.errors}) try: cleaned_data = form.clean() except ValidationError: return self.render_to_response(context={'form': form, 'errors': form.errors}) basket = Basket.objects.get(session=self.request.COOKIES['sessionid'], ordered=False) soups_from_basket = soups_from_basket_(basket) Order.objects.create( basket=basket, client_phone=cleaned_data.get('client_phone'), when=cleaned_data.get('when'), where=cleaned_data.get('where'), positions_sum=soups_from_basket['price'], who=request.META.get('REMOTE_ADDR') ) basket.ordered = True basket.save() return redirect(self.success_url)
def render_to_response(self, context, **response_kwargs): session = self.request.COOKIES['sessionid'] basket = Basket.objects.get(session=session, ordered=False) context = dict(context, **soups_from_basket_(basket)) return super(OrderFormView, self).render_to_response(context, **response_kwargs)