2010-03-08 35 views
0

我有一個模型定製,水木清華這樣的:過濾經理的Django模型,通過用戶

class Action(models.Model): 
    def can_be_applied(self, user): 
     #whatever 
     return True 

,我想重寫它的默認管理器。但我不知道如何將當前用戶變量傳遞給經理,所以我必須做的水木清華這樣的:

​​

我如何通過只覆蓋經理擺脫它?

謝謝。

回答

2

由於管理者只是方法,你可以把你想要有什麼:

class ActionManager(models.Manager): 
    def applied(self, user): 
     return [x for x in self.get_query_set().all() if x.can_be_applied(user)] 

Action.objects.applied(someuser) 

雖然不是很有效,它的工作。