2010-03-08 51 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) 

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