2010-12-04 5 views
1

동일한 모델 클래스의 인스턴스를 모두 포함하는 두 개의 QuerySet가 있습니다.Django : 2 QuerySets and Duplicates

class DBV: 
    name = CharField 
    description = TextField 
    review_state = CharField(choices=[u"Draft",u"Published",u"Archived"]) 
    team_members = FK(User) 
    deleted = Boolean 

이 내가이 개 검색어 세트를 얻기 위해 필터링하고 방법입니다

res = DBV.objects.filter(deleted=False).filter(team_members=user) 
if user.has_perm('dbv.can_view_dbv'): 
    r = DBV.objects.filter(deleted=False).filter(review_state__in=[u'Published',u'Archived',]) 
    res = res + r 

첫 번째 문제는, 물론, 당신이 검색어 세트를 추가하려고하면 얻을 :

unsupported operand type(s) for +: 'QuerySet' and 'QuerySet' 

그렇다면 이러한 QuerySets를 병합하고 중복을 제거하는 가장 좋은 방법은 무엇입니까? 나는 SQL을 작성하는 것 외에 장고에서는 그렇게 할 방법이 없다고 생각한다. 또는?

감사합니다. :) 에릭

답변

0

| 연산자를 사용할 수 있습니다. ie

Queryset1 | Queryset2 이렇게하면 집합의 합집합이됩니다. Queryset1 & Queryset2 세트의 교차점을 줄 것입니다