我想把Goods中desc_detail在原字段基础上更改,请问如何批操作?
class Goods:
desc_detail =CharField(max_length=100)
good_ = Goods.objects.all()
for i in good_:
i.desc_detail = site_replace( i.desc_detail )
i.save()
def site_replace(STR):
return STR.replace('ori', 'new')
已知:
把"desc_detail"字段改为固定值操作如下: Goods.objects.update(desc_detail = "default");
而Goods.objects.update(desc_detail = site_replace(desc_detail) ) 报错: desc_detail not defined.
已找到解决方案。
使用 bulk_create() 或 bulk_update()
from django.db import models
class Article(models.Model):
title = models.CharField('标题', max_length=200, unique=True)
body = models.TextField('正文')
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
# 内存生成多个对象实例
articles = [Article(title="title1", body="body1"), Article(title="title2", body="body2"), Article(title="title3", body="body3")]
# 执行一次SQL插入数据
Article.objects.bulk_create(articles)
shell里直接用update不也可以嘛