【发布时间】:2012-11-14 21:41:12
【问题描述】:
我想做一个 sql 查询来更新 Django 站点中的许多模型。我想将一个字符列/字段更改为基于 id 和一些文本,在 MySQL(这个站点是)中,我会用"UPDATE table SET blah = 'prefix'||id||'suffix'" 来做到这一点。
我在 Django 中的第一次尝试是:
Model.objects.update(blah='prefix'+F('id')+'suffix')
但这试图给 MySQL 一个 +,而不是一个 || 运算符。
我的下一个尝试是像这样使用.extra(…):
Model.objects.extra(select={'newvalue':'"prefix"||id||"suffix"'}).update(blah=F('new_value'))
但F(…) 无法从选择中看到新字段。
有没有办法在不分解为原始 SQL 的情况下做到这一点?
【问题讨论】:
标签: python django django-models django-queryset django-orm