1
다음과 같이 OrderManager
이라는 사용자 지정 모델 관리자가있는 Order
모델이 있습니다.사용자 지정 모델 관리자 업데이트가 적용되지 않습니다.
class Order(models.Model):
# Model fields are declared here.
...
objects = OrderManager()
all_objects = models.Manager()
class OrderManager(models.Manager):
def get_queryset(self):
return super(OrderManager, self).get_queryset().filter(Q(x='y') | Q(x='y'))
는, I는 검색어 세트에 다른 필터를 추가하여 OrderManager
클래스를 업데이트하고 새로운 구현 I는 업데이트 관리자를 사용 Order
모델로부터 데이터를 검색 할 때, 그러나
class OrderManager(models.Manager):
def get_queryset(self):
return super(OrderManager, self).get_queryset().filter(~Q(order_status='Cancelled'), Q(x='y') | Q(x='y'))
밝혀졌다 변경 사항을 무시하고 여전히 order_status
이 '취소됨'인 객체를 가져옵니다. 명시 적으로 마지막 추가 필터를 적용 한편
orders = Order.objects.all() # Retrieves cancelled orders as well.
는 작동합니다
orders = Order.objects.filter(~Q(order_status='Cancelled') # Ignores the cancelled orders.
그것이 마이그레이션 문제 나 무엇인가? 어딘가에 (어쩌면이 코드와 관련이없는) 바보 같은 실수가있는 것처럼 느껴진다.하지만 나는 눈이 멀었다. 어떤 제안이라도 대단히 감사합니다.
ps : 저는 Webfaction에서 Django 1.5.5를 사용하고 있습니다.
감사 : 장고 1.5
그래서 이전은이
get_query_set
메소드를 오버라이드 (override) 할 필요가! 나는 내가 워크 스테이션으로 돌아가서 대답을 승인 된 것으로 표시하자마자 시도해 보겠습니다. – iuysal