2009-11-26 5 views
1

사용자 정의 관리자에서 두 개 이상의 변수를 전달할 수있는 방법이 있는지 궁금합니다 ... 다른보기에서 오는 다섯 가지 변수가 있지만 모델에서 관리자를 선언했습니다. 이 변수 중 하나를 기반으로하는 필터링을 처리하려면 ... 필터 쿼리에서 모든 변수를 고려해야합니다. 이것을 할 수있는 방법이 있습니까? 그런 다음보기에서관리자에서 여러 값 전달

class VehicleQuerySet(QuerySet): 
    def vehicle_query(self, year): 
     return self.filter(common_vehicle__year__year__exact=year).exclude(status__status='Incoming') 

class VehicleManager(models.Manager): 
    def get_query_set(self): 
     return VehicleQuerySet(self.model) 

    def vehicle_query(self, year): 
     return self.get_query_set().vehicle_query(year) 

는 :

vehicle_query = Vehicle.smart_objects.vehicle_query(year) 
+0

지금까지 가지고있는 것을 보여주십시오. –

+0

내 코드를 추가했습니다 ... 기본적으로 vehicle_query를 통해 모든 값을 전달하고 싶습니다 – Stephen

답변

2

나는 당신이 준 코드가 불필요하게 복잡하다 생각합니다. 당신은 필터링 캔 등의 검색어 세트의 서브 클래스를 정의 할 필요가 없습니다 및 관리자에서 수행해야합니다

class VehicleManager(models.Manager): 
    def vehicle_query(self, year): 
     return self.get_query_set().filter(common_vehicle__year__year__exact=year).exclude(status__status='Incoming') 

그러나, 난 정말 당신의 질문을 이해하지 않습니다. 하나의 변수를 관리자 메소드로 전달하는 방법을 이미 알고 있는데 왜 다른 변수를 더 이상 전달하기가 어렵습니까?

+0

솔루션을 알아내는 데 도움이되었습니다 ... 세션을 사용하는 것이 좀 편합니다 :) 도움을 청합니다. Daniel – Stephen