Add exclude so the current user doesn't see their name

This commit is contained in:
Nathan Chapman 2022-07-22 14:45:25 -06:00
parent 1d688a4123
commit 1de7ad09ec

View File

@ -13,6 +13,7 @@ from django.contrib.auth.mixins import LoginRequiredMixin, UserPassesTestMixin
from django.contrib.messages.views import SuccessMessageMixin from django.contrib.messages.views import SuccessMessageMixin
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from accounts.models import User
from .models import Topic, Post, Comment from .models import Topic, Post, Comment
from .forms import PostForm, PostCreateForm, CommentCreateForm from .forms import PostForm, PostCreateForm, CommentCreateForm
@ -127,6 +128,15 @@ class PostDetailView(LoginRequiredMixin, DetailView):
model = Post model = Post
pk_url_kwarg = 'post_pk' pk_url_kwarg = 'post_pk'
def get_queryset(self):
queryset = Post.objects.all().prefetch_related(
models.Prefetch(
'recipients',
queryset=User.objects.exclude(pk=self.request.user.pk)
)
)
return queryset
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
object_content_type = ContentType.objects.get_for_model(self.object).pk object_content_type = ContentType.objects.get_for_model(self.object).pk