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)
答案 0 :(得分:0)
问题在于context['comments']
的值不是字典,而是QuerySet对象。
所以你做不到:
context['comments']['profile'] = Profile.objects.get(user=user)
。
也许您可以将与Profile模型的关系添加到Comment模型中,例如:
class Comment(models.Model):
profile = models.ForeignKey(Profile, ...)
...
因此,您可以访问发表评论的个人资料的值。