2011-09-07 3 views
1

inactive이라는 인증 유형에 두 개의 추가 관리자를 포함하여 방금 활성화 된 사용자 또는 비활성 사용자를 제공하려고합니다. 이합니다 (이 유효하지 않은 경우에도) 모델이 어떻게 보일지입니다 :auth_user에 대한 사용자 정의 모델 관리자

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()과 같은 쿼리를 할 수있는 장소 것인가? 고맙습니다.

답변

0

Manager에서 contribute_to_class 메소드를 사용해야합니다. 대신 당신이 가지고있는 User 클래스의, 당신은 다음과 같이해야합니다 : 당신이 한 공교롭게도이 작업을 수행 할 곳에 정확히 문제가되지 않습니다 의심

InactiveManager.contribute_to_class(User, 'inactive') 

을 좋은 초 (! 당신이 그것을 사용하기 전에) - models.py는 어딘가 모호하게 느껴질 것입니다.

관련 문제