Страница не найдена (404) Ни один счет-фактура не соответствует заданному запросу
Я создаю магазин на django. И я подключил магазин к тестовому платежному шлюзу, и я могу добавлять товары в корзину и проводить тестовый платеж локально. Но проблема возникает, когда я делаю тестовый платеж и меня перенаправляют на страницу callback.html, и я получаю ошибку.
Изображение возникшей ошибки Изображение ошибки
файлviews.py в приложении магазина:
файлurls.py в приложении shop:
# Urls.py in shop app
from . import views
from django.urls import path, include
from django.conf.urls.static import static
from django.conf import settings
from django.contrib.auth import views as auth_views
app_name = 'shop'
urlpatterns = [
path('', views.index, name='index'),
path('checkout/', views.checkout, name='checkout'),
path('product/<int:pk>/', views.product, name='product'),
path('store/', views.store, name='store'),
path('login/', auth_views.LoginView.as_view(), name='login'),
path('to-bank/<int:order_id>/', views.to_bank, name='to_bank'),
path('callback/', views.callback, name='callback'),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
models.py в приложении shop:
# Models.py in shop app
from django.contrib.auth.models import User
from django.db import models
from django.urls import reverse
class Product(models.Model):
name = models.CharField(max_length=100)
description = models.TextField()
create_time = models.DateTimeField(auto_now_add=True)
update_time = models.DateTimeField(auto_now=True)
image = models.ImageField(upload_to='images/product/%Y/%m/%d', blank=True)
price = models.DecimalField(max_digits=10, decimal_places=0)
class Meta:
ordering = ('create_time',)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('shop:product', args=[self.id])
class Order(models.Model):
customer = models.ForeignKey(User, on_delete=models.CASCADE)
order_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return str(self.id)
class OrderItem(models.Model):
order = models.ForeignKey(Order, on_delete=models.CASCADE)
product = models.ForeignKey(Product, null=True, on_delete=models.SET_NULL)
product_price = models.DecimalField(max_digits=10, decimal_places=0)
product_count = models.PositiveIntegerField()
product_cost = models.DecimalField(max_digits=10, decimal_places=0)
def __str__(self):
return str(self.id)
class Invoice(models.Model):
order = models.ForeignKey(Order, null=True, on_delete=models.SET_NULL)
invoice_date = models.DateTimeField(auto_now_add=True)
authority = models.CharField(max_length=200, blank=True, null=True)
def __str__(self):
return str(self.id)
class Transaction(models.Model):
STATUS_CHOICES = (
('pending', 'Pending'),
('failed', 'Failed'),
('completed', 'Completed')
)
invoice = models.ForeignKey(Invoice, null=True, on_delete=models.SET_NULL)
transaction_date = models.DateTimeField(auto_now_add=True)
amount = models.DecimalField(max_digits=10, decimal_places=0)
status = models.CharField(max_length=10, choices=STATUS_CHOICES, default='pending')
def __str__(self):
return str(self.id)
файл callback.html в приложении магазина:
{% extends 'base.html' %}
{% load static %}
{% block title %} Callback {% endblock %}
{% block content %}
<!-- BREADCRUMB -->
<div id="breadcrumb" class="section">
<!-- container -->
<div class="container">
<!-- row -->
<div class="row">
<div class="col-md-12">
<h3 class="breadcrumb-header">Payment Detail</h3>
</div>
</div>
<!-- /row -->
</div>
<!-- /container -->
</div>
<!-- /BREADCRUMB -->
<!-- SECTION -->
<div class="section">
<!-- container -->
<div class="container">
<!-- row -->
<div class="row">
<!-- Order Details -->
<div class="col-md-12 order-details">
<div class="section-title text-center">
<h3 class="title">Thank you</h3>
</div>
<div class="order-summary">
<p>Your Invoice number: {{ invoice.id }}</p>
</div>
</div>
<!-- /Order Details -->
</div>
<!-- /row -->
</div>
<!-- /container -->
</div>
<!-- /SECTION -->
{% endblock %}