前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >django new model instance by copy

django new model instance by copy

原创
作者头像
刀枪不入de王二花
修改2022-08-12 12:38:54
2990
修改2022-08-12 12:38:54
举报
文章被收录于专栏:BETTER

要件:

复制一条既存的数据,作成多条新数据

解决:

代码语言: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="")

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 要件:
  • 解决:
  • 应用例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档