Django | Я хочу показать страницу 'AnonymousUser', даже если я использую request.user в views.py
Я хочу показать страницу всем пользователям, даже если они не вошли в систему, но из-за использования request.user
в views.py
это невозможно.
Есть ли способ справиться с этим?
views.py:
class ServerView(View):
def get(self, request, server_tag):
server = Server.objects.get(tag=server_tag)
posts = server.posts.all()
is_following = False
relation = ServerFollow.objects.filter(server=server, user=request.user)
if relation.exists():
is_following = True
return render(request, 'servers/server.html', {'server':server, 'posts':posts, 'is_following':is_following})
Просто проверьте, аутентифицирован ли пользователь запроса. На основе этого вы можете реализовать цепочечную фильтрацию.
class ServerView(View):
def get(self, request, server_tag):
server = Server.objects.get(tag=server_tag)
posts = server.posts.all()
is_following = False
qs = ServerFollow.objects.filter(server=server)
if qs and request.user.is_authenticated():
qs = qs.filter(user=request.user)
if qs:
is_following = True
return render(request, 'servers/server.html', {'server':server, 'posts':posts, 'is_following':is_following})