我有很多记录要更新一个字段,我必须使用Django的ORM附带的.update()函数来完成此操作。我需要更新此字段,将字符串与相同字段的值连接起来。
我尝试使用带F表达式和Value的注释。但这没有用,因为在字段的注释中,我似乎无法使用同一字段。
这是我试图做的:
Model.objects.all().annotate(image=Concat(Value("Path/"), F("image")))
我有下一个型号:
+------+-------+
| id | image |
+------+-------+
| 1 | image1|
| 2 | image2|
| 3 | image3|
更新模型时,假设我想将字符串“ Path /”与字段图像连接起来,应该是这样的
+------+------------+
| id | image |
+------+------------+
| 1 | Path/image1|
| 2 | Path/image2|
| 3 | Path/image3|
答案 0 :(得分:0)
以下应该可以工作
Model.objects.update(image=Value('Path/') + F('image'))
F
引用了该字段的先前值
答案 1 :(得分:0)
您需要研究诸如Concat之类的Django函数:
from django.db.models.functions import Concat
Model.objects.update(image=Concat(Value('Path/'), F('image')))