NoReverseMatch at /details/The-Shortest-Scientific-Papers-Ever-Published-fa9c94fc-626a-446a-8b34-e6aeddcc086f

Я пытаюсь добавить комментарии в блоги моего проекта. Когда я публикую комментарий, он показывает NoReverseMatch на /details/The-Shortest-Scientific-Papers-Ever-Published-fa9c94fc-626a-446a-8b34-e6aeddcc086f

Вот страница с подробной информацией о блоге

{% extends 'base.html' %}
{% block content %}
<div class="container jumbotron">
    <div class="row">
        <div class="col-sm-6">
            <h2><i>{{blog.blog_title}}</i></h2>
            <h4>Posted By: @ {{blog.author}}</h4>
            <i><h6>Published On : {{blog.publish_date}}</h6></i>
        </div>
        <div class="col-sm-6">
            <img src="/media/{{blog.blog_image}}" alt="{{blog.blog_title}}" title="{{blog.blog_title}}" width="500px" height="200px">
        </div><hr>
        <p>{{blog.blog_content|capfirst}}
    </div>
    <div class="row">
        <div class="col-sm-6">
            <hr>
            <h5>Comments*</h5>
        </div>
        <div class="col-sm-6">
            <form method="post">
                {{comment_form.as_p}}
                {% csrf_token %}
                <button type="submit" class="btn btn-primary btn-sm">Comment</button>
            </form>
        </div>
    </div>
</div>
{% endblock content %}

views.py страницы подробностей блога-

def blog_details(request, slug):
    blog= Blog.objects.get(slug=slug)
    commet_form=CommentForm()
    if request.method=='POST':
        commet_form=CommentForm(request.POST)
        if commet_form.is_valid():
            comment=commet_form.save(commit=False)
            comment.user=request.user
            comment.blog=blog
            comment.save()
            return redirect('blog_details',kwargs={'slug':slug})
    return render(request,'blogs/blogdetails.html',context={'blog':blog,'comment_form':commet_form})

отображениеurls.py для страницы подробностей блога

urlpatterns = [
    path('details/<slug:slug>',views.blog_details,name="blog_details"),
]

servel url

http://localhost:8000/details/The-Shortest-Scientific-Papers-Ever-Published-fa9c94fc-626a-446a-8b34-e6aeddcc086f

Но на сайте сервера я получаю следующее

NoReverseMatch at /details/The-Shortest-Scientific-Papers-Ever-Published-fa9c94fc-626a-446a-8b34-e6aeddcc086f
Reverse for 'blog_details' with keyword arguments '{'kwargs': {'slug': 'The-Shortest-Scientific-Papers-Ever-Published-fa9c94fc-626a-446a-8b34-e6aeddcc086f'}}' not found. 1 pattern(s) tried: ['details/(?P<slug>[-a-zA-Z0-9_]+)$']
Request Method: POST
Request URL:    http://localhost:8000/details/The-Shortest-Scientific-Papers-Ever-Published-fa9c94fc-626a-446a-8b34-e6aeddcc086f
Django Version: 3.2.8
Exception Type: NoReverseMatch

Есть ли проблемы со слизью?

models.py слизняка

class Blog(models.Model):
    slug= models.SlugField(max_length=264,unique=True)
 

Помогите мне, пожалуйста.

redirect(…) [Django-doc] не использует args=… и kwargs=… параметр, он использует позиционные и именованные параметры, так:

return redirect('blog_details', slug=slug)

Примечание: Вы можете захотеть использовать slugify(…) [Django-doc] для создания slug. Это позволит создать единообразные slug и гарантирует, что они действительны для конвертера путей <slug:…>.

Вернуться на верх