auth_user的自定义模型管理器

时间:2011-09-07 23:26:45

标签: django django-models django-managers

我想在身份验证user模型,activeinactive上添加两个额外的管理员,以便为我提供活跃或非活跃用户。这就是模型的外观(即使它无效):

from django.contrib.auth.models import User

class ActiveManager(models.Manager):
    def get_query_set(self):
        return super(ActiveManager, self).get_query_set().filter(active=True)

class InactiveManager(models.Manager):
    def get_query_set(self):
        return super(InactiveManager, self).get_query_set().filter(active=False)

class User(models.Model):
    # user model...

    all_users = models.Manager()
    objects = ActiveManager()
    inactive = InactiveManager()

我在哪里/如何准确地放置这个,以便我可以进行User.inactive.all()之类的查询?谢谢。

1 个答案:

答案 0 :(得分:0)

您需要在Manager上使用contribute_to_class方法。而不是你在那里的User课程,你需要这样的东西:

InactiveManager.contribute_to_class(User, 'inactive')

我怀疑你做到这一点并不重要,只要它发生得很好而且很早(在你使用它之前!) - 某个地方的models.py会觉得模糊不清。