【发布时间】:2018-03-02 21:42:45
【问题描述】:
我有两个模型页面和帖子,其中页面可以有多个帖子。用户每天将使用相同的 URL 共享多个帖子。因此,我需要每天获取最多共享 URL 的提要以及当天的帖子。有没有办法在 Django ORM 中做到这一点?
class Page(models.Model):
url = models.URLField()
class Post(models.Model):
page = models.ForeignKey(‘Page', on_delete=models.DO_NOTHING, null=True, blank=True, related_name='posts')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
我最终得到了这个网址,它为我提供了共享最多的网址,但现在我不知道如何获取所有相关帖子并让它们按created_at 排序
Post.objects.filter(created_at__date=date.today()).values('page__id').annotate(num_shares=Count('page__id')).order_by('-num_shares')
<PostQuerySet [{'page__id': 2, 'num_shares': 6}, {'page__id': 1, 'num_shares': 5}]>
【问题讨论】:
-
检查这是否适合您
pubs = Post.objects.filter(created_at__date=date.today()).values('page__url','created_at').annotate(num_posts=Count('page__url'))'.order_by('created_at')。
标签: django django-models django-queryset django-orm