Отсутствие обратного соответствия в электронной коммерции

При переходе по url "http://localhost:8000/compras/finalizando/", возникает следующая ошибка:

"Reverse for 'pagseguro_view' with arguments '('',)' not found. 1 шаблон(ы) проверены: ['compras/finalizando/(?P[0-9]+)/pagseguro/\Z']]"

Я не могу понять, что вызывает эту ошибку, кто-нибудь может помочь?

my checkout/urls.py:

     from django.urls import path
        
        from .import views
        
        urlpatterns = [
            path('carrinho/adicionar/<slug>', views.create_cartitem,name='create_cartitem'),
            path('carrinho/', views.cart_item, name='cart_item'),
            path('finalizando/', views.checkout, name='checkout'),

            path('finalizando/<int:pk>/pagseguro/', views.pagseguro_view,   name='pagseguro_view'),

            path('meus-pedidos/', views.order_list, name='order_list'),
            path('meus-pedidos/<int:pk>/', views.order_detail, name='order_detail'),
        ]

Моя проверка/views.py:

Мой checkout/models.py:

Моя касса/templates/checkout/checkout.html:

{% extends "base.html" %}
{% load static %}

{% block title %}
Finalização da Compra
{% endblock %}

{% block content %}
<ol class="breadcrumb">
  <li><a href="{% url 'index' %}">Início</a></li>
  <li><a href="{% url 'checkout:cart_item' %}">Carrinho de Compras</a></li>
  <li class="active">Finalização da Compra</li>
</ol>
<div class="page-header">
    <h1>Escolha forma de pagamento</h1>
</div>
<div class="row">
    <div class="col-md-12">
        <p>
            Pedido #{{ order.pk }}
        </p>
    </div>
    <div class="col-md-2 col-md-offset-1">
        <a href="{% url 'checkout:pagseguro_view' order.pk %}" class="btn btn-success">
            <img style="height:100px; width: 100px;" src="{% static 'images/pagseguro.png' %}">
            >Pagar com Pagseguro
        </a>
    </div>
    <div class="col-md-2 col-md-offset-1">
        <a href="#" class="btn btn-success">
            <img style="height:100px; width: 100px;" src="{% static 'images/paypal.png' %}">
            >Pagar com Pagseguro
        </a>
    </div>
    <div class="col-md-2 col-md-offset-1">
        <a href="#" class="btn btn-success">
            <img style="height:100px; width: 100px;" src="{% static 'images/pix.png' %}">
            >Pagar com Pagseguro
        </a>
    </div>
</div>
{% endblock %}

Я не знаю, что не так, возможно, что-то не так с id, я думаю.
Вы можете попробовать изменить эту строку в checkout/templates/checkout/checkout.html:

href="{% url 'checkout:pagseguro_view' order.pk%}" class="btn btn-success"

To

href="{% url 'checkout:pagseguro_view' pk=order.pk %}" class="btn btn-success"

И попробуйте, если что-то изменится в ошибке.

Измените маршрут в urls.py, дайте pk до конца.

path("finalizando/pagseguro/<int:pk>",views.pagseguro_view,name='pagseguro_view')

Если это не работает, значит pk пуст.

Поскольку CheckoutView является шаблоном просмотра, вам нужно отправить order как контекстную переменную, используя get_context_data. Как вы упомянули набор форм в CartItemView.

django-doc

Вы используете заказ в checkout/templates/checkout/checkout.html, но он там недоступен.

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