【问题标题】:Unsupported lookup 'between' for TimeField or join on the field not permittedTimeField 的不支持查找“之间”或不允许在该字段上加入
【发布时间】:2018-04-04 12:56:41
【问题描述】:

我有一个这样的模型:

class Article(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    create_time = models.DateTimeField(auto_now_add=True,null=True)

我在视图函数中写了一个查询语句,如下所示:

from datetime import time
start_time = time(hour=17)
end_time = time(hour=18)
articles = Article.objects.filter(create_time__time__between=(start_time,end_time))

但是 Django raise Exception django.core.exceptions.FieldError: Unsupported lookup 'between' for TimeField or join on the field not permitted.,django document 说是对的。如果我想要过滤时间在 17 到 18 之间,我该怎么办?

【问题讨论】:

    标签: django django-models django-orm


    【解决方案1】:

    不,BETWEEN 查找的 Django 语法是 __range,而不是 __between - 这似乎是 __time 文档中的一个错误。

    articles = Article.objects.filter(create_time__time__range=(start_time,end_time))
    

    (我已提交 PR 以修复文档。)

    【讨论】:

      猜你喜欢
      • 2021-01-13
      • 2021-09-26
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 1970-01-01
      • 2022-08-03
      • 1970-01-01
      相关资源
      最近更新 更多