按用户外键和管理员过滤

Filtering by User Foreign Key and Admin

post 上的解决方案帮助回答了我的挑战的第一部分,但我如何使用此解决方案并在以管理员用户身份登录时仍然看到所有帖子?

感谢您的宝贵时间和协助。

你可以添加条件,如果请求的用户是管理员,你可以将所有帖子显示给他,否则通过以下代码片段显示请求的用户帖子

if request.user.is_superuser:
   posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
else:
   posts = Post.objects.filter(author=request.user,
                        published_date__lte=timezone.now()).order_by('published_date')

或者为了更简单

posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')

if not request.user.is_superuser:
    posts = posts.filter(author=request.user)