복잡한 장황함에서 필요한 모든 정보를 얻을 수없는 문제가 있습니다. 내 장고보기에서 .annotate()
호출. 여기 내 모델의 :Django에서 복잡한 주석 집합
RECORD_STATUS = (
(0, "Hidden"),
(1, "Unhidden"),
(2, "Deleted"),
)
class Activity(models.Model):
event_date = models.DateTimeField()
duration = models.IntegerField(default=0)
username = models.CharField(max_length=200)
record_id = models.CharField(max_length=100)
record_status = models.IntegerField(choices=RECORD_STATUS)
record_quality = models.FloatField(default=0)
내 뷰 템플릿에 뚜렷한 RECORD_ID에 따라 다음 값을 전달하고 싶습니다
:
- 평균 품질
- 수
- 최신 EVENT_DATE
- 총 지속 기간
및 0 ... 나는 다음의 검색어에 codechunk으로, 의도 한대로 이들의 대부분을 얻을 수있었습니다하지만 난 잡아 드릴 수 없습니다
최신 상태 (특정 RECORD_ID에 대한 최신 EVENT_DATE와 활동의 상태) 특정 record_id
의 최신 상태입니다. 나는 .extra()
전화가 갈 수있는 방법일지도 모른다고 믿고 싶지만, 올바르게 구성 할 수는 없습니다.
record_id_details = Activity.objects.values(
'record_id',
).annotate(
ave_quality=Avg('record_quality'),
count=Count('id'),
latest_event_date=Max('event_date'),
total_duration=Sum('duration'),
# Here's where I'm going wrong
# I need the record_statuses from the most recent Activities of each record_id
latest_status=,# dont know... record_status WHERE Max(event_date) ???
).order_by(sort)
내게 필요한 정보를 제공하는 주석 또는 추가 명령을 구성하는 데 도움이되는 조언을 제공해 주시면 감사하겠습니다. 감사!
이것은 정렬입니다. 내가 결국 함께했던 것. 답변 해주셔서 감사합니다. –