Реверс для 'add_comment' с ключевыми аргументами '{'pk': ''}'' не найден. Испробовано 2 шаблона:

Как я могу это исправить?

Сообщение об ошибке

Повтор для 'add_comment' с ключевыми аргументами '{'pk': ''}'' не найден. Проверено 2 шаблона(ов): ['shopping_mall/top_cloth/(?P[0-9]+)/comment\Z', 'top_cloth/(?P[0-9]+)/comment\Z']

.

Ошибка в строке 60

<a class="btn btn-success" href="{% url 'add_comment' pk=product.pk %}">add comment</a>

Мои URL

urlpatterns = [
        path('', views.index, name='index'),
        path('top_cloth/', views.top_cloth),
        path('top_cloth/<int:pk>/', views.cloth_detail, name='top_cloth_pk'),
        path('top_cloth/<int:pk>/comment', views.add_comment, name='add_comment'),
        path('top_cloth/<int:pk>/remove/', views.comment_remove, name='comment_remove'),
        path('top_cloth/<int:pk>/modify/', views.comment_modify, name='comment_modify'),
    
    ]

Мои взгляды

def cloth_detail(request, pk):
        post = ProductList.objects.get(pk=pk)
        product = Comment.objects.order_by()
        return render(
            request,
            'shopping_mall/cloth_detail.html',
            {
                'post': post, 'product': product
            }
        )
    
    def add_comment(request, pk):
        product = get_object_or_404(ProductList, pk=pk)
        if request.method == "POST":
            form = CommentFrom(request.POST)
            if form.is_valid():
                comment = form.save(commit=False)
                comment.author = request.user
                comment.product = product
                comment.save()
                return redirect('index', pk=product.pk)
            else:
                form = CommentFrom()
    
            return render(request, 'shopping_mall/add_comment.html', {'form':form})

Traceback

Я уже неделю ищу в интернете решение этого вопроса, но не могу его решить.

Ваш product.pk является пустой строкой, поэтому regex top_cloth/<int:pk>/comment не совпадает (int означает [0-9]+, поэтому требуется хотя бы один символ).

Поэтому url не найден (отсюда ошибка).

Теперь, почему ваш product.pk пуст? Я вижу, что вы пытаетесь вывести cloth_detail.html, а в представлении вы написали :

product = Comment.objects.order_by()

Ваш product тогда является списком из Comment? Список не имеет пк (отсюда и ошибка).

Давайте посмотрим на ваше cloth_detail.html, потому что я думаю, что там тоже есть логическая ошибка.

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