【发布时间】:2020-04-19 00:39:34
【问题描述】:
我有一个名为Post 的模型和另一个名为Share 的模型用户可以创建帖子或分享帖子。我正在使用以下查询:
Post.objects.filter(
Q(user=user) |
Q(share__user=user)
).annotate(
shared_or_created=Coalesce('share__shared_at', 'created_at')
).order_by('-shared_or_created')
通过这个查询,我得到了正确的帖子,但是,假设另一个用户(用户 B)分享了这个用户的帖子,那么 shared_at 字段将是用户 B 分享它的时间。因此,如果用户有 3 个帖子和 1 个用户分享了该用户的帖子,那么其中两个帖子将具有创建帖子的正确时间,而第三个帖子将具有用户 B 共享该帖子的时间。
逻辑应该是按降序显示用户的帖子和他们分享的帖子。我该如何实现?
【问题讨论】:
标签: django django-models