[英]Transforming a queryset to get the most recent entry, per name
我的數據如下所示:
class Entry(models.Model):
name = models.CharField(max_length=100)
date = models.DateField(auto_now_add=True)
size = models.FloatField(null=True)
如果我做:
qs = Entry.objects.all()
我得到一個queryset
所有條目。 我將如何變換queryset
得到另一個查詢集 , 每名最新的條目?
我猜你可以這樣寫:
qs = Entry.objects.values('name').annotate(Max('date')).order_by()
您必須先導入Max
。
我沒有嘗試查詢集,但是應該可以。
假設您使用的是postgres后端,則可以將distinct(*fields)
與適當的order_by
結合使用:
qs = Entry.objects.all()
qs = qs.order_by('name', '-date').distinct('name')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.