2011-09-18 8 views
1

내가이 같은 모델 뭔가를 사용하여, 장고와 VCS를 모델링하고 말할 수 있습니다 :Django에서 개체의 최신 버전을 모두 검색하려면 어떻게해야합니까?

이제
class VCSItem(models.Model): 
    directory = models.CharField() 
    name = models.CharField() 
    revision = models.IntegerField() 

(디렉토리 이름)을 고유하게 내 시스템에 의해 추적 항목을 식별하지만, 각 항목은 여러 버전이있을 수 있습니다.

모든 항목을 나열하고 싶습니다. 각 항목에는 시스템의 최대 버전이 있습니다. 장고에 내장 된 기능이 있나요?

최악의 경우는, 내가 좋아하는 뭔가 내 자신에 그것을 할 수 : - 차라리 피할 것 무언가를

newest_items = {} 
for item in VCSItem.objects.all().order_by("revision"): 
    newest_item[item.directory + item.name] = item 

단점은 내가 각을 통해 데이터베이스 및 루프에서 모든 항목을 가져해야한다는 것입니다 가능하다면. https://docs.djangoproject.com/en/dev/ref/models/querysets/#annotate이 https://docs.djangoproject.com/en/dev/ref/models/querysets/#max

VCSItem.objects.values('directory', 'name').annotate(max_rev=Max('revision')) 

답변

1

주석과 최대 집계 함수를 보라 완전한 객체이지만`directory`,`name`,`max_rev`를 포함하는 Dict입니다. 전체 개체를 가져 오는 매끄러운 방법이 있습니까?
+0

이러한 접근 방식은 반환하지 않습니다 –

관련 문제