Friday, May 29, 2020

AttributeError when returning post.title in a comment model

I was working on a comment section for post and was getting an AttributeError when I return return '{}-{}'.format(self.post.title, str(self.user.username)) in the comment model

I am trying to link users and posts to the comment I am getting the same error

Here is the Models.py

class Comment(models.Model):      post = models.ForeignKey(Post, on_delete=models.CASCADE)      user = models.ForeignKey(User, on_delete=models.CASCADE)      content = models.TextField(max_length=160)      timestamp = models.DateTimeField(auto_now_add=True)        def __str__(self):          return '{}-{}'.format(self.post.title, str(self.user.username))  

Here is the views.py:

class PostDetailView(DetailView):      model = Post      template_name = "post_detail.html"        def get_context_data(self, *args, **kwargs):          context = super(PostDetailView, self).get_context_data()          post = get_object_or_404(Post, slug=self.kwargs['slug'])          comments = Comment.objects.filter(post=post).order_by('-id')          total_likes = post.total_likes()          liked = False          if post.likes.filter(id=self.request.user.id).exists():              liked = True            if self.request.method == 'POST':              comment_form = CommentForm(self.request.POST or None)              if comment_form.is_valid():                  content = self.request.POST.get('content')                  comment = Comment.objects.create(                      post=post, user=request.user, content=content)                  comment.save()                  return HttpResponseRedirect("post_detail.html")          else:              comment_form = CommentForm()            context["total_likes"] = total_likes          context["liked"] = liked          context["comments"] = comments          context["comment_form"] = comment_form          return context      class PostCommentCreateView(LoginRequiredMixin, CreateView):      model = Comment      form_class = CommentForm  

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/9e84bb03-ca66-4517-ab34-8d723a457b9f%40googlegroups.com.

No comments:

Post a Comment