[英]django1.8 F expressions and string subsets
我有以下名為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__'
我可以執行以下操作,但速度慢(每1M行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()
支持僅限於使用以下運算符的數字運算: +
, -
, *
, /
, %
和**
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.