Django:使用自定义管理器从基础模型继承的模型。经理可以有动态变量吗?

时间:2010-01-29 15:27:39

标签: django django-models django-managers

我需要让我所有的模特都继承这位经理(没有测试过这位经理,这可能很荒谬,所以我完全乐于接受建议/批评):

class AccountFilterManager(models.Manager):
    def __init__(self, account=None, *args, **kwargs):
        super(AccountFilterManager, self).__init__(*args, **kwargs)
        self.account = account  # account of course will be an instance of Account(models.Model)

    def get_query_set(self):
        if self.account:
            return super(AccountManager,self).get_query_set().filter(account=self.account)

你可以看到我正在尝试做什么。限制根据我正在处理的帐户过滤掉所有地方的需要。

让这位经理与我的所有模特一起工作的最佳方法是什么?用它抽象的基础模型?另外,我如何从视图级别将帐户变量传入其中?这都是错的和邪恶的吗?我一直试图找到一种方法来征服这一周:(。

1 个答案:

答案 0 :(得分:2)

没有。管理器被实例化为类属性,从而为所有模型实例提供相同的管理器。