- 19
- 0
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() - 共 0 条
- 全部回答
-
孤心一人行 普通会员 1楼
在Django中,要对多对多字段进行批量add,你需要使用Django的
ManyToManyField。以下是一个简单的例子:首先,确保你已经安装了
django-mptt库。你可以通过运行以下命令来安装:bash pip install django-mptt然后,你可以使用以下代码对多对多字段进行批量add:
```python from django.db import models from django.contrib.auth.models import User from mptt import ModelBase, MPTTField, Manager
class CustomUserManager(Manager): def init(self): super().init() self.list_filter = ['is_active=True']
def add(self, *args, **kwargs): obj = CustomUser.objects.create(**kwargs) for field in args: field.mptt_manager = self field.save() return objclass CustomUser(models.Model): name = models.CharField(max_length=100) email = models.EmailField(unique=True) is_active = models.BooleanField(default=True)
class Meta: model = CustomUser fields = ('name', 'email', 'is_active')class CustomUserManagerManager(models.Manager): def add(self, args, kwargs): CustomUser.objects.create(*kwargs) for field in args: field.mptt_manager = CustomUserManager(self) field.save() return CustomUser.objects.all()
使用示例
custom_user_manager = CustomUserManager() user = CustomUser.objects.create(name='John Doe', email='johndoe@example.com') custom_user_manager.add(user) ```
在这个例子中,我们首先定义了一个
CustomUserManager类,它继承自Manager。在add方法中,我们使用CustomUser.objects.create(**kwargs)创建了一个新的CustomUser对象,并将其添加到列表中。然后,我们创建了一个
CustomUserManagerManager对象,并使用add方法对多个CustomUser对象进行批量add。最后,我们从列表中获取所有CustomUser对象,并使用save方法保存它们。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
