我有一个名为sheetinfo
的模型:
class Sheetinfo(models.Model):
sheet_id = models.CharField(max_length=30)
group_id = models.CharField(max_length=200,default = 'xx')
我想将所有group_id
更新为sheet_id
字符串的子集-
具体而言:
group_id = sheet_id[19:-6]
我尝试了以下使用F表达式的方法 https://docs.djangoproject.com/en/1.8/ref/models/expressions/#django.db.models.F
def fix_group():
qs = Sheetinfo.objects.all()
qs.update(group_num=F('sheet_id')[19:-6])
但是我得到了这个错误:
'F' object has no attribute '__getitem__'
我可以做以下工作,但速度很慢(每1米行10分钟以上)
qs = Sheetinfo.objects.all()
for s in qs:
group_id_str = s.sheet_id
s.group_id = str(group_id_str)[19:-6]
s.save()
不幸的是
F()
支持仅限于具有以下运算符的数值操作:+
、-
、*
、/
、%
和**
相关问题 更多 >
编程相关推荐