python - 查找其中一个字段大于另一字段的查询集

标签 python django django-models django-orm

我有模型Shop,我想获取所有time_open(开门时间)大于time_close(关门时间)的商店。例如,23:00:00 大于 07:00:00(Shop_2(夜类店))。

class Shop(models.Model):
    time_open = models.TimeField()
    time_closed = models.TimeField()

例如我有两个对象:

shop_1 = {
    "time_open": "08:00:00",
    "time_closed": "22:00:00"
}

shop_2 = {
    "time_open": "23:00:00",
    "time_closed": "07:00:00"
}

我的目标是输出 shop_2 所在的查询集。 这些对象中的这些时间戳仅用于视觉示例,我想在不将任何数据放入sql查询中的情况下执行此操作。我想通过比较 time_opentime_close 字段来实现此目的。

我在纯SQL中发现了类似的问题:

Find rows where one field is greater than another one

我的目标是使用 Django ORM 来实现。

最佳答案

你可以看看django的F objects ,它允许您根据字段值过滤对象。

from django.db.models import F
Shop.objects.filter(time_open__gt=F('time_closed'))

关于python - 查找其中一个字段大于另一字段的查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74277905/

相关文章:

python - 列表中出现频率最高的数字

python - Tweepy 没有返回完整的推文 : tweet_mode = 'extended' not working

python - 如何检查你的模型在 Django 中没有错误

python - Django:如何在数据库中将复选框的 POST.get 保存为 false (0)?

python - Django 模型中的自定义地址字段

python - django 中哪个过滤器查询更有效,为什么?

python - 将一行中的每一列传递给 Spark SQL 中的哈希函数

java - 使用 JSR-223 从 Jython 脚本获取数据

python - 在 Django 中使用 pylucene 时,执行 initVM 和 attachCurrentThread 的最佳位置在哪里

django 与命名空间反向