我可以将Django F()对象与字符串串联使用吗?
我想通过看起来像这样的ORM运行django更新:
MyModel.objects.filter(**kwargs).update(my_field=F('my_other_field')+'a string')
这导致MySQL引发异常。无论如何,不编写原始SQL就能做到这一点?
回答:
发生的事情是Django正在将“ +”传递给SQL-但是SQL不允许将“
+”用于串联,因此它尝试进行数字加法。如果您使用整数代替“字符串”,那么它确实可以将的整数值添加my_other_field
到变量中,因此可以正常工作。
这是否是bug尚有争议。查找查询中对象的文档F()
说明:
Django支持使用加法,减法,乘法,除法和模运算与
F()
对象
因此可以说您不应该尝试使用它来更新字符串。但这当然没有记录,并且错误消息“ Invalid DOUBLE value”不大有用。我开一张票。
以上是 我可以将Django F()对象与字符串串联使用吗? 的全部内容, 来源链接: utcz.com/qa/407693.html