新手請教
目前使用版本為python3,已在資料庫裡面建立了兩個時間欄位如下
first = models.DateField( verbose_name='開始時間')
last = models.DateField( verbose_name='結束時間')
想要在view裡面抓資料時判斷好,目前時間大於開始時間且目前時間小於結束時間才拋到前端做顯示
但發現抓資料時只能使用“=”做判斷,想請教是否有建議的做法可滿足需求呢?
tt = test.objects.filter(first = datetime.date.today())
想請問,date_range裡面的日期可以換成資料表裏面的”first””last”嗎?主要是想要每一行資料都能依造自己的時間被判斷。
引用方式目前是用”first””last”,是否有用錯呢?
謝謝您
再請教一下
date = datetime.date.today()
tt = test.objects.filter(date__range=[test.first, test.last])
這是我目前的寫法
但會出現錯誤
Cannot resolve keyword 'date' into field. Choices are: array, expl, first, id, last, ps
PS:Choices are: array, expl, first, id, last, ps,裡面的是我資料表欄位
請問我應該如何修改呢?謝謝
試試這一篇看看
tt = test.objects.filter(date__range=(first, last))
或
from_date = datetime.datetime.combine(first, datetime.time.min)
to_date = datetime.datetime.combine(last, datetime.time.max)
tt = test.objects.filter(date__range=(from_date, to_date))
再不行我就不會了, 幫不上忙
感謝回覆
目前看來還是不行,我的
first = models.DateField( verbose_name='開始時間')
last = models.DateField( verbose_name='結束時間')
是資料庫欄位,寫在model.py裡面
date__range比對時一直出現字串錯誤,我想應該會先從這邊下手試試看
主要是要實現貼文的自動上下架問題,謝謝
問題已解決,分享一下找到的方式
tt = test.objects.filter(first__lte=datetime.now(),last__gte=datetime.now())
可能是我沒將環境說明清楚,我的環境為 django+pyhton3+sqllite3
主要是__lte、__gte即可做判斷,謝謝