문제
사용자 정의 관리자에 둘 이상의 변수를 전달할 수있는 방법이 있는지 궁금합니다. 다른 뷰에서 나오는 5 가지 변수가 있지만 모델에는 이러한 변수 중 하나를 기반으로 필터링을 처리하도록 관리자에게 선언했습니다. ... 필터 쿼리에서 모든 변수를 고려하고 싶습니다. 이것을 할 방법이 있습니까?
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)
해결책
나는 당신이 주신 코드가 불필요하게 복잡하다고 생각합니다. 필터링이 관리자에서 필터링을 수행 할 수 있고 수행해야하므로 쿼리 세트 서브 클래스를 정의 할 필요가 없습니다.
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')
그러나 나는 당신의 질문을 정말로 이해하지 못합니다. 하나의 변수를 관리자 방법으로 전달하는 방법을 이미 알고 있습니다. 왜 추가 변수를 추가로 통과 하는가?
제휴하지 않습니다 StackOverflow