Python 找不到页面(404):没有与给定查询匹配的帖子。
我试图在帖子上创建一个“Like”按钮。职位属于一个群体。然而,在我的视图功能中,我得到一个404错误,因为它找不到单独的帖子,即使它在URL中。以下是相关文件: (posts/url.py): (组/详细信息html)Python 找不到页面(404):没有与给定查询匹配的帖子。,python,django,django-models,django-templates,django-views,Python,Django,Django Models,Django Templates,Django Views,我试图在帖子上创建一个“Like”按钮。职位属于一个群体。然而,在我的视图功能中,我得到一个404错误,因为它找不到单独的帖子,即使它在URL中。以下是相关文件: (posts/url.py): (组/详细信息html) {%for posts in posts%} {{post.title} {{post.body} {{post.pub_date_pretty}} {{post.author}} {%endfor%} {%csrf_令牌%} 只是不明白为什么它不能抓住这个职位。任何帮助都将
{%for posts in posts%}
{{post.title}
{{post.body}
{{post.pub_date_pretty}}
{{post.author}}
{%endfor%}
{%csrf_令牌%}
只是不明白为什么它不能抓住这个职位。任何帮助都将不胜感激 看起来您正在将组id传递给POST请求:
{%url'posts:like'group.id%}
而不是POST id
与其使用表单发送POST请求,不如使用或
from . import views
from django.urls import path
app_name = 'posts'
urlpatterns = [
path('create/<int:group_id>/', views.create, name='create'),
path('edit/<int:group_id>/<int:post_id>/', views.edit, name='edit'),
path('delete/<int:group_id>/<int:post_id>/', views.delete, name='delete'),
path('like/<int:post_id>/', views.like, name='like'),
]
from django.shortcuts import render, get_object_or_404, redirect
from groups.models import Group
from .models import Post
from .forms import PostForm
from django.utils import timezone
def like(request, post_id):
post = get_object_or_404(Post, pk= post_id)
if request.method == 'POST':
post.likes_total += 1
return redirect('/groups/index' )
# post.save()
else:
return render(request, 'groups/detail.html', {'group':group})
{% for post in posts %}
<h2>{{post.title}}</h2>
<h5>{{post.body}}</h5>
<p>{{post.pub_date_pretty}}</p>
<p>{{post.author}}</p>
<a href="{% url 'posts:edit' group.id post.id %}">Edit</a>
<a href="{% url 'posts:delete' group.id post.id %}">Delete</a>
<a href="javascript:{document.getElementById('like').submit()}"><button class="btn btn-primary"> Like ({{post.likes_total}})</button></a>
{% endfor %}
<form method ='POST' id= 'like' action="{% url 'posts:like' group.id %}" >
{% csrf_token %}
<input type="hidden" >
</form>