找不到具有关键字参数“{id':106}”的“posts”的反转。尝试了1个模式:[“posts/$”]

2024-06-13 08:44:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个博客应用程序,一切正常,但当我。它向我展示了:

Reverse for 'posts' with keyword arguments '{'id': 106}' not found. 1 pattern(s) tried: ['posts/$'] , views.py

    def post_like_dislike(request, post_id):
        post = get_object_or_404(Post, pk=post_id)
        # Like
        if request.GET.get('submit') == 'like':
            if request.user in post.dislikes.all():
                post.dislikes.remove(request.user)
                post.likes.add(request.user)
                return JsonResponse()
            elif request.user in post.likes.all():
                post.likes.remove(request.user)
                return redirect('mains:posts',id=post_id)
            else:
                post.likes.add(request.user)
                return JsonResponse({'action': 'like_only'})
        else:
            messages.error(request, 'Something went wrong')
            return redirect('mains:posts',id=post_id)

 The Error is is at this Line -----------------^

detail.html

                <form method="GET" class="likeForm d-inline" action="{% url 'mains:post_like_dislike' data.id %}"
                    data-pk="{{ data.id }}">
                    <button type="submit" class="btn"><i class="far fa-thumbs-up"></i>
                        <span id="id_likes{{data.id}}">
                            {% if user in data.likes.all %}
                            {{data.likes.count}}</p>
                            {% else %}
                            {{data.likes.count}}</p>
                            {% endif %}
                        </span><form><button name='submit' type='submit' value="like"> Like </button></form>
                    </button>
                </form>

错误

当我点击Like按钮时,它显示Reverse for 'posts' with keyword arguments '{'id': 106}' not found. 1 pattern(s) tried: ['posts/$']

任何帮助都将不胜感激

先谢谢你


Tags: informiddatareturnifrequestbutton
1条回答
网友
1楼 · 发布于 2024-06-13 08:44:33

所以你用的是redirect('mains:posts',id=post_id)

但是在mains应用程序中postsURL不接受任何参数

Reverse for 'posts' with keyword arguments '{'id': 106}' not found. 1 pattern(s) tried: ['posts/$']

此错误为您提供了一个线索,因为它向您显示了它尝试的URL,即posts/$

因此redirect('mains:posts')将匹配此尝试的URL,因为它不提供任何参数,并且路径/URL不需要任何参数

从您包含的URL

path('post_like_dislike/<int:post_id>/',views.post_like_dislike, name='post_like_dislike'),

这是一个URL,它需要一个Post对象ID的参数

redirect('mains:post_like_dislike', post_id=post_id)

相关问题 更多 >