Re: AttributeError when returning post.title in a comment model

2020-05-31 Thread Julio Cojom
Try '{0}-{1}'.format(var1, var2)

Check in the console in what line it's throwing the attribute error

Rewards

El vie., 29 de mayo de 2020 5:10 p. m., Ahmed Khairy <
ahmed.heshamel...@gmail.com> escribió:

> 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+unsubscr...@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
> 
> .
>

-- 
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+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAHRQUHki1Fk2s1a9ws4vB7yhfaLFhyboOVwvPSSVG87BSo0%3DtA%40mail.gmail.com.


AttributeError when returning post.title in a comment model

2020-05-29 Thread Ahmed Khairy


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+unsubscr...@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.