gpt4 book ai didi

Django:在查询中的 datetime.timedelta 中使用 F 参数

转载 作者:行者123 更新时间:2023-12-04 05:38:34 24 4
gpt4 key购买 nike

使用 Django 模型语法,如果我这样做:

ThatModel.objects.filter(
last_datetime__lte=now + datetime.timedelta(seconds=F("interval")))

我得到:
TypeError: unsupported type for timedelta days component: ExpressionNode

有没有办法用纯 Django 语法(而不是用 Python 解析所有结果)使这个工作?

最佳答案

来自 Django 文档:

Django provides F expressions to allow such comparisons. Instances of F() act as a reference to a model field within a query. These references can then be used in query filters to compare the values of two different fields on the same model instance.



这意味着您可以使用 F()用于在查询中进行比较。 F()返回引用,因此当您将其用作 timedelta 的参数时对象,您会收到错误 ExpressionNode .您可以查看 documentation .您可以查看 F() 的源代码

对于您的解决方案,您可以查看: DateModifierNode ,或者只是保存 interval 的值其他地方,然后将其作为 timedelta 的参数传递.

关于Django:在查询中的 datetime.timedelta 中使用 F 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24133829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com