我尝试在Django中创建一个社交媒体网站,主页将显示每个朋友的最新帖子列表,最新的在顶部。目前我忽略了友谊功能,只显示所有用户的帖子。
我当前的代码从用户那里获取最近的帖子,但是不按照创建日期对列表进行排序。
views.py:
class PostList(generic.ListView):
model = Post
# Gets the most recent post from each user
# However, the returned set is not ordered by created_on
queryset = Post.objects.order_by('author', '-created_on').distinct('author')
template_name = 'home.html'
我无法更改order_by
调用,因为它会抛出以下错误:SELECT DISTINCT ON expressions must match initial ORDER BY expressions
我知道这是可能的,因为我做了~5年前,但我不知道我当时采取了什么方法,代码丢失。
1条答案
按热度按时间vjrehmav1#
如果您可以访问模板中的用户模型,则可以执行以下操作:
如果您有自定义的用户模型,那么请执行额外的步骤,并在其上定义一些方法来访问帖子:
然后在模板中访问它,如下所示: