如何计算条目数,注释它和 select 最新的 Django ORM

How to count number of entries, annotate it and select latest with Django ORM

我需要 select 匹配特定模式的条目,计算它们并选择最新的。如何通过 Django ORM 做到这一点?

尝试过:

Entry.objects.filter(A=B).annotate(Count("something")).latest("date")

每个 B 只计算 1 个项目。如果我删除 latest("date"),它会正确计数,但只给出计数,没有其他。如何正确完成这个任务?

UPD:实际代码

def render_entries(request):
    ids = Entry.objects.values("entry_token").distinct()
    entries = [Entry.objects.filter(entry_token=x["entry_token"]).annotate(count=Count("id")).latest("date_time") for x in ids]
    return render(request, "entries_list.html", {'entries':entries})

已更新可能不是最理想的,但这应该有效。

def render_entries(request):
    # get list of all entry_tokens with count
    tokens = Entry.objects.values('entry_token').annotate(count=Count('entry_token'))
    # create list of entries
    entries = []
    for token in tokens:
        entry = Entry.objects.filter(entry_token=token['entry_token']).latest('date_time')
        entry.count = token['count']
        entries.append(entry)
    return render(request, "entries_list.html", {'entries':entries})