Отсутствие обратного соответствия в электронной коммерции
При переходе по 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.
Вы используете заказ в checkout/templates/checkout/checkout.html, но он там недоступен.