【发布时间】:2021-07-19 00:13:15
【问题描述】:
您好,我正在开发一个博客应用程序,我正在为由它的 pk 标识的帖子创建一个简单的点赞按钮,其中链接位于表单中,但遇到了错误。
NoReverseMatch 在 /single_post/8/ 未找到“like_post”的反向。 'like_post' 不是有效的视图函数或模式名称。
my views.py 用于详细视图和类似按钮视图
def post_detail(request, pk):
post = Post.objects.get(id=pk)
context = {
'post': post,
}
return render(request, 'news/post_detail.html', context)
def LikeView(request, pk):
post = get_object_or_404(Post, id=request.POST.get('post_id'))
post.likes.add(request.user)
return(HttpResponseRedirect(reverse('single_post', args=[str(pk)] )))
models.py
class Post(models.Model):
title = models.CharField(max_length=100)
description = models.TextField()
image = models.ImageField(upload_to='img/', default='img/default.jpg')
author = models.CharField(max_length=100)
date = models.DateTimeField(auto_now_add=True)
credit = models.URLField(blank=True, null=True)
likes = models.ManyToManyField(User, related_name='daily_posts')
def __str__(self):
return self.title
在详细视图中的表单和链接
<form action="**{% url 'like_post' post.pk %}**" method="POST">
{% csrf_token %}
<button class="btn btn-primary btn-sm" type="submit", name="post_id", value="{{ post.id }}">Like</button>
</form>
以及每次我点击喜欢时都会遇到的错误。
NoReverseMatch at /single_post/8/
Reverse for 'like_post' not found. 'like_post' is not a valid view function or pattern name.
我无法确定这里似乎是什么问题,有人可以帮忙吗?
【问题讨论】:
标签: python html django error-handling