我嘗試爲我的渲染創建一個範圍,但當我使用now()
或date.today()
按日期過濾時,我只有空查詢。爲什麼日期範圍返回空查詢?
models.py:
class Episode(models.Model):
date = models.DateTimeField(null=True, default=now)
我導入好的庫的過程:
from django.utils.timezone import now, timedelta
我認爲這是個好辦法:
page = 0
n = now()
Episode.objects.filter(date__range=[n-timedelta(days=(5*page)), n-timedelta(days=(5*(page+1)))])
<QuerySet []>
但它沒有工作... 有關信息:數據庫有鍵入的情節和值datetime.datetime:
for e in Episode.objects.filter():
print(e.date)
2017-02-22 19:12:31.351811+00:00
2017-02-22 19:12:31.418354+00:00
2017-02-22 19:12:31.468889+00:00
2017-02-22 19:12:31.524925+00:00
2017-02-22 19:12:31.599978+00:00
2017-02-22 19:12:31.680029+00:00
2017-02-22 19:12:31.744071+00:00
2017-02-22 19:12:31.803611+00:00
2017-02-22 19:12:31.872156+00:00
2017-02-22 22:24:56.733546+00:00
2017-02-23 19:16:00.600644+00:00
當我在範圍照片直接使用字符串時,它的工作...
Episode.objects.filter(date__range=['2017-02-22 19:12:31.351811+00:00','2017-02-22 19:12:31.744071+00:00'])
<QuerySet [<Episode: Episode object>, <Episode: Episode object>, <Episode: Episode object>, <Episode: Episode object>, <Episode: Episode object>, <Episode: Episode object>, <Episode: Episode object>]>
我嘗試過前初始化變量...
n = now()
page = 0
startDate = n-timedelta(days=5*page)
endDate = n-timedelta(days=5*(page+1))
Episode.objects.filter(date__range=[startDate, endDate])
<QuerySet []>
你有一個IDEAR爲什麼我可以使用now
或datetime
進行過濾,並且它可以與字符串一起使用?
編輯:查詢
print(Episode.objects.filter(date__range=[startDate, endDate]).query)
SELECT "table_episode"."id", "table_episode"."card_id", "table_episode"."date", "table_episode"."number", "table_episode"."title", "table_episode"."type_episode", "table_episode"."tag", "table_episode"."url_access" FROM "table_episode" WHERE "table_episode"."date" BETWEEN 2017-02-23 22:46:06.391779 AND 2017-02-18 22:46:06.391779
<QuerySet []>
你可以打印查詢集查詢,並檢查提示生成的SQL: '打印Episode.objects.filter(date__range = [N-timedelta(天數=(5 *頁)),正timedelta (days =(5 *(page + 1)))]])。query' – alfredo138923
感謝您的回覆,我不認爲這樣做,我將它添加到主帖子中。 – Buky
'endDate = n-timedelta(days = 5 *(page + 1))'endDate總是小於startDate。檢查條件。希望它有幫助 – alfredo138923