要件:
复制一条既存的数据,作成多条新数据
解决:
代码语言:python代码运行次数:0复制pl = Pl.objects.get(pk=1) # 找一条数据
npl=pl # 复制
npl.pk=None # 主键清空
npl.save() # 保存一个新的对象
应用例
parent model:Product
child model:ProductList
给每一个Product做一条ProductList数据
代码语言:python代码运行次数:0复制>>> from .models import ProductList, Product
>>> pl = ProductList.objects.get(pk=1) # 复制一条数据
>>> products = Product.objects.all() # product为productlist 的外键
>>> for p in products:
... newpl=ProductList()
... newpl=pl # 复制
... newpl.product = p # 登录外键
... newpl.pk=None # 主键清空 ,若不清空主键,newpl与pl指向同一地址,每次loop只会更新pl
... newpl.save()
>>>
model参照
代码语言:python代码运行次数:0复制class ProductList(BaseModel):
product = models.ForeignKey(Product, verbose_name='商品', on_delete=models.SET_NULL, null=True)
code = models.CharField(verbose_name='コード', max_length=20, default="")