在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ Django 如何對多對多字段進(jìn)行批量add?

Django 如何對多對多字段進(jìn)行批量add?

ValueError: "<OrderShipping: OS-180623085540>" needs to have a value for field "id" before this many-to-many relationship can be used.
class OrderGoodsInfo(models.Model):
    ...
....
class OrderShipping(models.Model):
    order = models.ManyToManyField(OrderGoodsInfo, blank=True, verbose_name="物流ID")
....

views.py

container_orders_id = [] 
for order in container_obj.orders.all():
    container_orders_id.append(order.id)
order_goods = OrderGoodsInfo.objects.filter(id__in=container_orders_id)
order_shipping = OrderShipping(user=request.user)
form = OrdershippingForm(request.POST, instance=order_shipping) 
if form.is_valid():
   osp = form.save(commit=False)
   osp.order.add(*order_goods)
   osp.save()
回答
編輯回答
笨小蛋
osp = form.save(commit=True)
osp.order.add(*order_goods) 
# osp.save()

m2m 關(guān)系只有當(dāng)兩邊都在數(shù)據(jù)庫中存在時(shí)才能添加

2017年3月25日 03:16