对于TimeField不支持查找'之间'或在不允许的字段上加入

时间:2018-04-04 12:56:42

标签: django django-models django-orm

我有一个这样的模型:

User user2 = new User("admin", "");
User user3 = new User("", "test");
User user4 = new User("", "");

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

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

但是Django提出异常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 document说它是对的。如果我希望过滤小时在17到18之间,我该怎么办?

1 个答案:

答案 0 :(得分:4)

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

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

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