0

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

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)

你可以看到我正在尝试做的事情。根据我正在处理的帐户限制到处过滤的需要。

让这位经理与我的所有模型一起工作的最佳方式是什么?用抽象基模型吗?另外,我如何从视图级别将帐户变量传递给它?这一切都是错误和邪恶的吗?一个星期以来,我一直在努力寻找一种方法来克服这个问题:(。

4

1 回答 1

2

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

于 2010-01-29T15:29:00.950 回答