1

我想在 authuser模型中包含两个额外的管理器,active并且inactive,给我只是活跃的用户,或者只是非活跃的用户。这就是模型的外观(即使它无效):

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()?谢谢你。

4

1 回答 1

0

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

InactiveManager.contribute_to_class(User, 'inactive')

我怀疑你在哪里做这件事并不重要,只要它发生得很好而且很早(在你使用它之前!) - 某个地方的models.py会感觉模糊正确。

于 2011-09-08T00:01:32.217 回答