Like button not recording likes in the back end

huangapple go评论83阅读模式
英文:

Like button not recording likes in the back end

问题

以下是您要翻译的内容:

views

  1. def BlogLike(request, slug):
  2. post = get_object_or_404(BlogPost, id=request.POST.get(slug))
  3. post.likes.add(request.user)
  4. return render(request, 'viewblog', {'post': post})

urls

  1. path('view-blog/<slug:slug>/', views.ViewBlog, name='viewblog'),
  2. path('like/<slug:slug>', views.BlogLike, name='likepost'),

html

  1. <form action="{% url 'viewblog' blog.slug %}" method="POST">
  2. {% csrf_token %}
  3. <button class="btn btn-outline-secondary rounded-0 custom-button" id="like" type="submit" name="blog_id" value="{{ blog.slug }}">Like</button>
  4. </form>

EDIT

  1. class BlogPost(models.Model):
  2. title = models.CharField(max_length=100, null=False, blank=False, default="")
  3. text = RichTextUploadingField(null=True, blank=True, default="text")
  4. featured_text = models.TextField(max_length=550, null=True, blank=True, default="text")
  5. image = models.ImageField(null=True, blank=True, upload_to="images", default="default.png")
  6. date = models.DateField(auto_now_add=True)
  7. published = models.BooleanField(default=False)
  8. featured = models.BooleanField(default=False)
  9. slug = models.SlugField()
  10. likes = models.ManyToManyField(User, related_name='likes')
  11. def save(self, *args, **kwargs):
  12. self.slug = self.slug or slugify(self.title)
  13. super().save(*args, **kwargs)
  14. def __str__(self):
  15. return self.title
英文:

Button successfully links back to current blog page but the likes are recording in the back end, what am I doing wrong here?

views

  1. def BlogLike (request, slug):
  2. post = get_object_or_404(BlogPost, id=request.POST.get(slug))
  3. post.likes.add(request.user)
  4. return render(request, &#39;viewblog&#39;, {&#39;post&#39;: post})

urls

  1. path(&#39;view-blog/&lt;slug:slug&gt;/&#39;, views.ViewBlog, name=&#39;viewblog&#39;),
  2. path(&#39;like/&lt;slug:slug&gt;&#39;, views.BlogLike, name=&#39;likepost&#39;),

html

  1. &lt;form action=&quot;{% url &#39;viewblog&#39; blog.slug %}&quot; method=&quot;POST&quot;&gt;
  2. {% csrf_token %}
  3. &lt;button class=&quot;btn btn-outline-secondary rounded-0 custom-button&quot; id=&quot;like&quot; type=&quot;sumbit&quot; name=&quot;blog_id&quot; value=&quot;{{ blog.slug }}&quot;&gt;Like&lt;/button&gt;
  4. &lt;/form&gt;

EDIT

  1. class BlogPost(models.Model):
  2. title = models.CharField(max_length=100, null=False, blank=False, default=&quot;&quot;,)
  3. text = RichTextUploadingField(null=True, blank=True, default=&quot;text&quot;)
  4. featured_text = models.TextField(max_length=550, null=True, blank=True, default=&quot;text&quot;)
  5. image = models.ImageField(null=True, blank=True, upload_to=&quot;images&quot;, default=&quot;default.png&quot;)
  6. date = models.DateField(auto_now_add=True)
  7. published = models.BooleanField(default=False)
  8. featured = models.BooleanField(default=False)
  9. slug = models.SlugField()
  10. likes = models.ManyToManyField(User, related_name=&#39;likes&#39;)
  11. def save(self, *args, **kwargs):
  12. self.slug = self.slug or slugify(self.title)
  13. super().save(*args, **kwargs)
  14. def __str__(self):
  15. return self.title

答案1

得分: 0

这是我的功能性代码。

views

  1. def BlogLike(request, slug):
  2. post_id = request.POST.get('blog-id')
  3. post = BlogPost.objects.get(slug=post_id)
  4. post.likes.add(request.user)
  5. return HttpResponseRedirect(reverse('viewblog', args=[post_id]))

html

  1. <form action="{% url 'likepost' blog.slug %}" method="POST">
  2. {% csrf_token %}
  3. <button class="btn btn-outline-secondary rounded-0 custom-button" id="like" type="submit" name="blog-id" value="{{ blog.slug }}">喜欢<i class="fa-solid fa-heart"></i></button> - {{ blog.total_likes }} 喜欢
  4. </form>

urls

  1. path('like/<slug:slug>', views.BlogLike, name='likepost'),

models

  1. likes = models.ManyToManyField(User, related_name='likes')
  2. def total_likes(self):
  3. return self.likes.count() #这是用来统计帖子有多少喜欢的数量。
英文:

This is my functional code.

views

  1. def BlogLike (request, slug):
  2. post_id = request.POST.get(&#39;blog-id&#39;)
  3. post = BlogPost.objects.get(slug=post_id)
  4. post.likes.add(request.user)
  5. return HttpResponseRedirect(reverse(&#39;viewblog&#39;, args=[post_id]))

html

  1. &lt;form action=&quot;{% url &#39;likepost&#39; blog.slug %}&quot; method=&quot;POST&quot;&gt;
  2. {% csrf_token %}
  3. &lt;button class=&quot;btn btn-outline-secondary rounded-0 custom-button&quot; id=&quot;like&quot; type=&quot;sumbit&quot; name=&quot;blog-id&quot; value=&quot;{{ blog.slug }}&quot;&gt;Like&lt;i class=&quot;fa-solid fa-heart&quot;&gt;&lt;/i&gt;&lt;/button&gt; - {{ blog.total_likes }} Likes
  4. &lt;/form&gt;

urls

  1. path(&#39;like/&lt;slug:slug&gt;&#39;, views.BlogLike, name=&#39;likepost&#39;),

models

  1. likes = models.ManyToManyField(User, related_name=&#39;likes&#39;)
  2. def total_likes(self):
  3. return self.likes.count() #this is to count amount of likes a post has.

huangapple
  • 本文由 发表于 2023年2月24日 04:07:36
  • 转载请务必保留本文链接:https://go.coder-hub.com/75549823.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定