2013-10-16 5 views
0

연락처에서 전자 메일 그룹을 생성하려고합니다. 내 페이지에서 모든 목록에 대해 확인란을 사용합니다. 내 장고보기에서 나는 가지고있다 :중복 된 항목 제거

context['distribution_list'] = [] 
for entry in request.GET: 
    context['distribution_list'].extend(list(Contact.objects.all().filter(lists__name__exact=entry))) 

이것은 작동하지만 나는 여전히 중복 항목이있다. 중복을 제거하는 가장 좋은 방법은 무엇입니까?

고맙습니다.

+0

을 사용할 수 있습니다 (설정 (컨텍스트 [ 'distribution_list']))'후 루프에 대한 . – Matthias

답변

0

아직 for entry in request.GET:이 어떻게 작동하는지 잘 모르겠습니다. 그것은 문제가되지 않습니다 위해 단지`문맥 [ 'distribution_list'] = 목록라면

그러나 distinct() filter

entries = [entry for entry in request.GET] 
Contact.objects.filter(lists__name__in=entries).distinct() 
+0

'요청에 대한 입장을 위해 .GET' 나는 활성화 된 모든 체크 박스의 이름을 얻습니다. 따라서 나는 질문하고자하는 배포 목록을 얻습니다. 그런 다음 각 목록에 대해 쿼리를 수행하고 "distribution_list"를 확장해야합니다. 연락처가 둘 이상의 목록에있는 경우 연락처가 두 번 이상 목록에 있습니다. 이것들은 제거하고 싶은 복제물입니다. – user2496550

+0

Answer – karthikr

+0

에서 언급 한 것처럼'distinct()'절을 사용하십시오. 그러나 이것은 각 단일 쿼리의 결과에 중복이 없는지 확인하지 않습니까? 문제는 'distribution_list'를 이미 'distribution_list'에있는 항목이 포함 된 다른 쿼리의 결과로 확장했기 때문에 발생합니다. – user2496550