이것은 쉽지만 쉽지는 않지만 찾는 데 어려움이 있습니다. 나는 다음과 같습니다 :Django 쿼리 : 모델 인스턴스에 FK가있는 개체의 수를 계산하십시오.
App(models.Model):
...
Release(models.Model):
date = models.DateTimeField()
App = models.ForeignKey(App)
...
하나 이상의 릴리스가있는 모든 App 개체를 어떻게 쿼리합니까?
App.objects.all().annotate(release_count=Count('??????')).filter(release_count__gt=0)
카운트 적어도 지금까지 내가 말할 수있는 관계를 스팬하지 않기 때문에 작동하지 않습니다
내가 입력을 시작했다.보너스 :
궁극적으로, 나는 또한 최신 릴리스 날짜별로 앱을 정렬 할 수 있도록하고 싶습니다. 응용 프로그램에서 최신 릴리스 날짜를 캐싱 (캐싱)하여 조금 더 쉽고 저렴하게 만들고 릴리스 모델의 save
메서드에서 업데이트하는 방법을 생각하고 있습니다. 물론 더 좋은 방법은 없습니다.
편집 :
내가 장고 1.1을 사용하고 있습니다 - 회피하지 비록 강력한 이유가있는 경우 1.2의 기대 디바이스로 마이그레이션합니다. , 보너스의 경우
App.objects.annotate(release_count=Count('release')).filter(release_count__gt=0)\
.order_by('-release__date')
허, 그게 정확히 내가하려고했던 것이지만, 나는 그것이 통역사에서 한번도 시도한 적이 없다는 것을 확신했다. –