当前位置: 首页 > 面试题库 >

我可以将Django F()对象与字符串串联使用吗?

郑狐若
2023-03-14
问题内容

我想通过看起来像这样的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”不大有用。我开一张票。



 类似资料:
  • 问题内容: 这是以前有关Java中的String初始化的一些问题的后续问题。 在用Java进行了一些小测试之后,我面临以下问题: 为什么我可以执行此语句 当str2一个String对象初始化为,但我不能调用方法toString()上str2?那么Java如何将空字符串对象和字符串文字串联起来? 顺便说一句,我还尝试将一个初始化为null和字符串文字的Integer连接起来,”a_literal_s

  • 问题内容: 我正在从事Java代码优化。我不清楚或符号之间的区别: 第2行和第3行有什么区别? 问题答案: 这种方法使用StringBuilder创建结果字符串 此方法仅调用的静态方法来获取int的String版本 依次调用

  • 我想解析一些JSON,但一个键要么是字符串,要么是对象。 这是我当前的结构:https://github.com/PhillippOhlandt/pmtoapib/blob/master/CollectionItemRequest.go#L10 在这里,“Url”属性不仅可以是字符串,还可以是对象。 我开始为它创建一个自己的结构,覆盖对象案例。 但是这样字符串版本就不行了。有没有一种方法既能处理这

  • 我一直试图使用date.format(DateTimeFormatter formatter)方法格式化一个日期字符串列表,例如,'date'是java.time.LocalDate对象。问题是,我找不到直接从字符串创建Year对象的方法。例如,如果我有字符串yearString=“90”。我想创建一个等于这个值的Year对象,然后使用format方法输出yearStringNew=“1990”。

  • 问题内容: 假设字符串a和b: 在幕后,他们是同一回事吗? 这里将concat反编译为参考。我也希望能够反编译该+运算符,以查看其作用。 问题答案: 不,不是。 首先,语义上略有不同。如果a是null,则抛出一个,但a+=b将把原来的值a就好像它是null。此外,该方法仅接受值,而+操作员会将参数无提示地转换为String(使用对象的方法)。因此,该concat()方法在接受方面更加严格。 要深入

  • 我通过将字符串转换为BSON来进行MongoDB查找。在进行转换之前,是否有办法确定我拥有的字符串是否是Mongo的有效ObjectID? 下面是我当前findByID函数的coffeescript。它工作得很好,但是如果我确定字符串不是ID,我希望通过不同的属性进行查找。