Объект QuerySet не поддерживает назначение элементов - PullRequest
0 голосов
/ 24 января 2019
class PostDetailView(DetailView):
    model = Post
    template_name = 'detail.html'

    def get_context_data(self, **kwargs):
        context = super(PostDetailView, self).get_context_data(**kwargs)
        instance = Post.objects.get(pk=self.kwargs.get('pk'))
        user = instance.post_user
        context['comments'] = Comment.objects.filter(comment_post=instance.pk)
        context['comments']['profile'] = Profile.objects.get(user=user)
        return context

Это мое мнение до сих пор.Когда я использую этот код, я получаю эту ошибку. Объект QuerySet не поддерживает назначение элементов.Как правильно прикрепить строку ниже?

context['comments']['profile'] = Profile.objects.get(user=user)

1 Ответ

0 голосов
/ 24 января 2019

Проблема в том, что значение context['comments'] - это не словарь, а объект QuerySet.
Так что вы не можете сделать:
context['comments']['profile'] = Profile.objects.get(user=user).

Может быть, вы можете добавить связь с моделью профиля прямо к модели комментария, например:

class Comment(models.Model):
    profile = models.ForeignKey(Profile, ...)
    ...

Так что тогда вы можете получить доступ к значению профиля, который оставил комментарий.

...