3
我想對我的店鋪模型按其開放時間排序。商店模型包含is_open函數,該函數控制商店的開放時間範圍,並在打開或未打開時生成布爾值。問題是我不想手動排序我的查詢集,因爲效率問題。我想如果我編寫自定義註釋函數,那麼我可以更有效地過濾查詢。自定義日期綜合功能
所以我google了一下,發現我可以擴展Django的聚合類。從我的理解,我必須使用預先定義的SQL函數,如MAX,AVG等。事情是我想檢查今天的日期是在一個給定的時間間隔列表。所以任何人都可以幫助我使用哪個SQL名稱?
編輯
我想在這裏把代碼,但它的確是一個意大利麪條之一。一頁長碼只產生時間間隔並檢查合適的一個。
我想避免:
alg= lambda r: (not (s.is_open() and s.reachable))
sorted(stores,key=alg)
,並替換爲:
Store.objects.annotate(is_open = CheckOpen(datetime.today())).order_by('is_open')
但我完全怎樣寫CheckOpen輸了...
您能否給我們一些來自'Store'模型的代碼,一個簡短的數據例子和ex結果。 – Stan