2010-07-09 5 views
1

django에서 QuerySet을 Q 객체로 변환하는 방법이 있습니까?Django - QuerySet을 Q 객체로 변환하는 방법은 무엇입니까?

내 구체적인 동기 : 하나의 QuerySet (qs_A)을 다른 QuerySet (qs_B)에서 뺍니다. 내가 생각할 수있는 유일한 방법은 exclude()와 qs_A에 해당하는 Q 객체를 사용하는 것입니다.

예 :

def my_function(qs_A, qs_B): 
    # Here I need to transform qs_A to a Q object q_obj_A 
    qs_new = qs.exclude(q_obj_A) 
    return qs_new 

답변

5

당신은 Q 개체가 필요하지 않습니다. 그냥 두 번째의 검색어 제외 : 간단하고 작동합니다

qs = qs_a.exclude(id__in=qs_B) 
+1

을하지만 실제로 간단한 상태를 나타내는 Q 개체를하는 것보다, 덜 효율적이고 적어도 많은 경우에, 집중적 인 더 dB의 생각한다. – Jonathan

+1

조숙 한 최적화는 모든 악의 뿌리입니다. 적어도, 나쁘다. –

+0

@Matthew - 당신은 장고가 미숙 한 웹 프레임 워크라고 말하는 것을 의미합니까?! 아니면 제 프로젝트가시기 상조라는 것을 의미합니까?! – Jonathan

관련 문제