と の 2 つのモデルがOrder
あり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)
OrderItem
これは、オブジェクトを作成して保存する方法です
if not item_in_orders:
# creat and save a new order item
anon_user = User.objects.get(id=settings.ANONYMOUS_USER_ID)
try:
order= Order.objects.get(pk=order_id)
except:
order = Order.objects.create(created_by=anon_user,modified_by=anon_user)
oi=OrderItem.objects.create(order=order,shopping_id=_shopping_id(request),
quantity=quantity,
item=i,
created_by=anon_user,
modified_by=anon_user)
oi.save()
OrderItem
ここで、上記のオブジェクトはオブジェクトの前に作成されることに言及する必要がありOrder
ます。
class Order(SmartModel):
email = models.EmailField(max_length=50,help_text="Needed as alternative")
mobile = PhoneNumberField(max_length=20,default='+2507####')
billing_name= models.CharField(max_length=50)
billing_address= models.CharField(max_length=50)
billing_city = models.CharField(max_length=50)
両方のモデルは ModelForms であり、2 つが作成されると、データベース内の 2 つの行がOrder
. 取り込まれていない最初の行は、OrderItem の作成時にこのコードによって作成されたと思われます。
order = Order.objects.create(created_by=anon_user,modified_by=anon_user)
oi=OrderItem.objects.create(order=order,shopping_id=_shopping_id(request),
quantity=quantity,
item=i,
created_by=anon_user,
modified_by=anon_user)
oi.save()
Order
オブジェクトを保存すると2行目が作成され、問題ありません。
OrderItem
はOrder
前者で、後者は前者の外部キー フィールドであることに注意してください。
私のdjangoアプリの要件は、顧客(私の場合Order
)が提供される前に注文項目が作成されることです。他のアイデアは大歓迎です。