Django F() 表达式在函数参数中不起作用

Posted

技术标签:

【中文标题】Django F() 表达式在函数参数中不起作用【英文标题】:Django F() expression not working inside a function parameter 【发布时间】:2021-03-31 19:48:51 【问题描述】:

我正在尝试将 DateTime 值与查询中的特定时区转换,当我明确添加时区时它起作用了

InventoryDetails.objects.filter(Q(check_time=checktime.astimezone(timezone('Asia/Kolkata')))

但是当我使用下面的 F() 表达式时它不起作用

InventoryDetails.objects.filter(Q(check_time=checktime.astimezone(timezone(F('time_zone')))

【问题讨论】:

【参考方案1】:

不,这是不可能的。 Django 只是 SQL 的一个包装器,因此您使用 Django 的对象模型和方法进行的任何查询最终都必须转换为原始 SQL 查询,这意味着您希望在查询中调用的所有函数都必须作为数据库函数存在,而不是客户端函数。

【讨论】:

以上是关于Django F() 表达式在函数参数中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

当我将可选参数传递给视图时,为啥我的 CSS 静态文件在 Django 中不起作用?

Python函数导入在Django中不起作用

命名 url 在 django 1.5 和 python 2.7 中不起作用

使用 pyinputplus 时,正则表达式似乎在 allowRegexes 参数中不起作用

表单动作在 django 中不起作用

lambda函数在多进程中不起作用