2009-11-26 30 views
1

我想知道是否有方法可以在自定義管理器中傳遞兩個或多個變量......有五個變量來自不同的視圖,但在模型中,我聲明瞭一個管理器處理基於這些變量之一的過濾...我希望在過濾器查詢中考慮所有變量。有沒有辦法做到這一點?在管理器中傳遞幾個值

class VehicleQuerySet(QuerySet): 
    def vehicle_query(self, year): 
     return self.filter(common_vehicle__year__year__exact=year).exclude(status__status='Incoming') 

class VehicleManager(models.Manager): 
    def get_query_set(self): 
     return VehicleQuerySet(self.model) 

    def vehicle_query(self, year): 
     return self.get_query_set().vehicle_query(year) 

然後在視圖:

vehicle_query = Vehicle.smart_objects.vehicle_query(year) 
+0

向我們展示你到目前爲止所擁有的。 – 2009-11-26 09:02:55

+0

我已經添加了我的代碼...基本上我想通過所有的值通過vehicle_query – Stephen 2009-11-26 09:56:41

回答

2

我覺得你給的代碼是不必要的複雜。你並不需要定義一個查詢集的子類,因爲過濾可以而且應該在經理來完成:

class VehicleManager(models.Manager): 
    def vehicle_query(self, year): 
     return self.get_query_set().filter(common_vehicle__year__year__exact=year).exclude(status__status='Incoming') 

不過,我真的不明白你的問題。你已經知道如何將一個變量傳遞給管理器方法,爲什麼傳遞更多的變量更困難?

+0

設法找出一個解決方案...與會議工作對我來說有點容易:) thnx的幫助丹尼爾 – Stephen 2009-11-26 16:21:15