-1

モデルがOrderItemあり、それにはforeignkeyがありorderます。OrderItem を作成する関数もあります。

OrderItem.objects.create(shopping_id=_shopping_id(request),
                                          quantity=quantity,
                                          item=i,
                                          created_by=anon_user,
                                          modified_by=anon_user)

orderご覧のとおり、どうすればそれができるのか理解できなかったため、含めていません。エラーが発生しますorder_items.order_id may not be NULL

これが私のモデルですOrderItem

class OrderItem(SmartModel):
    shopping_id = models.CharField(max_length=50,db_index=True)
    quantity = models.IntegerField(default=0)
    item = models.ForeignKey(Item)
    order = models.ForeignKey(Order)

どんな種類の助けも大歓迎です。

4

3 に答える 3

1

order追加と追加が異なるのはなぜitemですか? どちらも ForeignKey であり、どちらの場合も、関連するオブジェクトをキーワード引数として渡すだけです。

于 2013-02-15T16:50:28.243 に答える
0

これは機能しませんか?

order, created = Order.objects.get_or_create(...)

それから

OrderItem.objects.create(order=order, shopping_id=_shopping_id(request),
                                          quantity=quantity,
                                          item=i,
                                          created_by=anon_user,
                                          modified_by=anon_user)
于 2013-02-15T16:53:44.603 に答える
0

作成されていない場合は存在するかどうかを確認してから、 OrderItem オブジェクトを作成する必要があります。コードは次のようになります。

     try:
         order = Order.objects.get(pk=order_id)
     except:
           order = Order.objects.create(name=name)

     OrderItem.objects.create(shopping_id=_shopping_id(request),
                                      quantity=quantity,
                                      item=i,
                                      order=order
                                      created_by=anon_user,
                                      modified_by=anon_user)
于 2013-02-15T18:40:30.267 に答える