[英]Get most recent related objects for all objects
假設我有以下 model:
from django import models
class Post(models.Model):
user = models.ForeignKey(to=User, on_delete=CASCADE)
created = models.DatetimeField(auto_now_add=True)
我想從一組用戶那里獲取一些關於最近發布的信息(例如喜歡)
posts = User.objects.filter(**params).annotate(most_recent_post=Max('post__created')).annotate(likes=Count('post__likes', filter=Q(post__created=F('most_recent_post'))
當我嘗試進行此查詢時,出現以下錯誤: OperationalError: misuse of aggregation function MAX()
class Post(models.Model):
user = models.ForeignKey(User, on_delete=CASCADE)
created = models.DatetimeField(auto_now_add=True)
class Meta:
ordering = ['-created'] # ordering Post by created date DESC
def recent(request):
user = request.user
recent_post = user.post_set.all().first() # get the recent post
counter = user.post_set.all().count() # count all posts by this user
試試這個來獲取最近的帖子:
posts = Post.objects.order_by('-id').all()
計數用途:
posts = Post.objects.order_by('-id').all().count()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.