Django 쿼리 : 목록에있는 ID를 제외하도록 개체를 필터링하는 방법은 무엇입니까?


87

목록에 속한 ID를 가진 개체 인스턴스가 결과에서 제외되도록 쿼리에서 필터링하려면 어떻게해야합니까?

내가 가지고 있다고 가정 해 봅시다.

object_id_list = [1, 5, 345]

MyObject.objects.filter(Q(time__gte=datetime.now()) & Q( ... what to put here? ... ))

스타일의 무언가 "SELECT * FROM ... WHERE id NOT IN (...)"

답변:


171
MyObject.objects.filter(time__gte=datetime.now()).exclude(id__in=object_id_list)

1
이름은 무엇입니까 MyObject.objects? 이 수업에 대해 어디서 읽을 수 있습니까?
Serge

@Serge MyObject는 Django 모델 클래스와 관련이 있습니다. 예를 들어 UserProfile 모델 설정이있는 경우 UserProfile.objects가있을 수 있습니다.
codeguy

감사합니다.하지만 .objects. 뭔데?
Serge

14

Q객체를 사용하여이 작업을 수행 할 수도 있습니다 .

from django.db.models import Q

MyObject.objects.filter(time__gte=datetime.now()).filter(~Q(id__in=object_id_list))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.