2010-06-09 5 views
8

내 모델에서 고유 대다 기록의 목록을 가져옵니다 :의 검색어

class Order(models.Model): 
    ordered_by = models.ForeignKey(User) 
    reasons = models.ManyToManyField(Reason) 
class Reason(models.Model): 
    description = models.CharField() 

는 기본적으로 사용자가 주문을 생성하고 해당 주문에 대한 이유를 제공합니다. 즉, 존은 두 가지 명령을 내린다 (하나는 연필 때문에, 그는 현재 나와있는 주식이 마음에 들지 않기 때문이다. 펜이 나오기 때문에 두 번째 명령).

사용자가 주문한 모든 이유로 목록을 인쇄하고 싶습니다. 그래서 존 밑에서, 그는 "그가 나와있다", "그는 현재 주식이 마음에 들지 않습니다"라고 인쇄해야합니다. 그 두 줄만. 만약 내가 존의 명령을 모두 선택했다면, 그것들을 반복하고 그들의 "이유"를 인쇄하면 그는 "그가있다", "그는 현재의 주식이 마음에 들지 않는다"그리고 "다시 나가있다"라고 인쇄 할 것이다. 나는이 중복 된 가치들을 원하지 않는다.

모든 주문에 대한 이유 목록을 선택하여 목록에 모든 고유 한 행이 포함되도록하려면 어떻게해야합니까?

답변

12
Reason.objects.filter(order__ordered_by=john).distinct()