Django创建模型对象和列表而不保存它

时间:2013-05-15 18:59:31

标签: django django-models django-1.4

我有这样的事情:

class Order(models.Model):
    user= models.ForeignKey(User)

class OrderLines(models.Model):
    product = models.ForeignKey(Product)
    quanity = models.PositiveSmallIntegerField()
    order = models.ForeignKey(Order)

现在在我的页面上想要做那样的事情(也许我的设计方法是错误的):

  1. 我收到带有product_id和quanity的POST数据,并将其作为'ORDER_LINES'变量存储为会话中的简单字典
  2. 当用户点击“制作订单”时,我想简单地创建Order对象:
  3. (我正在使用通用视图)

    class ShowOrderPreview(TemplateView):
        template_name = "shop/order_preview.html"
        http_method_names = ['get']
    
        def get_context_data(self, **kwargs):
            context = super(ShowOrderPreview, self).get_context_data(**kwargs)
            order = Order(user = self.request.user)
            for product, quanity in self.request.session.get('ORDER_LINES', {}):
                order.orderlines_set.add( product=get_object_or_404(Product, pk=product_id), quanity=quanity)
            context['tmp_order'] = order
            return context
    

    我不想将该订单存储在数据库中,只有在用户确认后再次创建并保存。

    我正在"Column 'order_id' cannot be null"

    上收到:order.orderlines_set.add(...

    我知道最快的解决方案是创建类似DummyOrderDummyOrderLines的结构,其结构类似于我的主OrderOrderLines对象

    我正在使用Django 1.4.1

0 个答案:

没有答案