2

たとえば、次のようなものがあります。

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 と quantity を含む POST データを受け取り、それを単純な辞書としてセッションに「ORDER_LINES」変数として保存します
  2. ユーザーが「注文する」をクリックするOrderと、単純にオブジェクトを作成したい:

(私は一般的なビューを使用しています)

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(...

最速の解決策は、メインとオブジェクトのようなサムのような構造でDummyOrder何かを作成することであることを知っていますDummyOrderLinesOrderOrderLines

を使用してDjango 1.4.1います。

4

0 に答える 0