按用户外键和管理员过滤

时间:2015-08-22 21:16:00

标签: django django-forms django-admin django-views

帖子User and object foreign key上的解决方案有助于回答我的挑战的第一部分但是如何使用此解决方案并以管理员用户身份登录时仍然可以查看所有帖子?

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:2)

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

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)