2011-07-27 31 views
1

過濾我有一個實現了時間範圍,像這樣的Django的型號:Django管理:由「現在」,在列表視圖

class Period(models.Model): 
    start_time = models.DateTimeField(_(u'start time')) 
    end_time = models.DateTimeField(_(u'end time')) 

我有這方面的簡單的ModelAdmin爲好。我想在管理列表視圖中提供一個過濾器,將這些期間分爲「未來」,「正在進行」和「過去」。我可以啓用日期篩選的START_TIME和END_TIME分別與破解了change_list.html模板在建期間提供適當的查詢字符串,像這樣:

<li><a href="?start_time_lte=[now]&end_time_gt=[now]">In Progress</a> 

我的問題是,有沒有辦法提供[Query]當運行QuerySet時對服務器端進行評估的東西?我知道你可以將可調參數傳遞給一個QuerySet過濾器,但似乎這個功能不適用於FilterSpecs。我討厭不得不將日期時間字符串填充到查詢字符串中,因爲我知道我的管理員會爲過濾的鏈接添加書籤,並且會感到困惑。

回答

1

你會想使用新的list_filter feature,因爲這裏的黑客攻擊較少。

如果你堅持使用Django 1.2,我無法幫到你。

+0

老鼠,我確實被困在1.2。這正是我需要的,所以很高興知道。謝謝! – GregM

+0

如果你真的被困住了,你可以嘗試找到list_filter特性的補丁並將它應用到你的1.2版本。希望這個補丁不是另一個更大的補丁的一部分,並且不會破壞任何其他功能。 – fahhem