Django `Not Found: /payment_getway/` Ошибка - URL Path Not Resolving

Я столкнулся с ошибкой Not Found: /payment_getway/ в моем приложении Django. Несмотря на настройку пути к URL и функции просмотра, Django не может найти указанный URL. Я привел все соответствующие фрагменты кода и конфигурации ниже. Я не уверен, что может быть причиной этой проблемы.

Вот краткий обзор того, что я сделал:

  1. Конфигурация URL:

В моем приложении urls.py я определил путь для функции представления payment_getway:

urlpatterns = [
    path('payment_getway/', payment_getway, name='payment_getway'),
    path('order-confirmation/', order_confirmation, name='order_confirmation'),
]
  1. Функция просмотра:

Функция просмотра payment_getway определяется следующим образом:

from django.shortcuts import render, redirect, get_object_or_404
from django.utils import timezone
from .models import CartOrder, Address

def payment_getway(request):
    if request.method == "POST":
        user = request.user
        address_id = request.POST.get('address_id')  # Ensure this ID is passed in your form

        # Retrieve the address instance
        address_instance = get_object_or_404(Address, id=address_id, user=user)

        # Create a new CartOrder instance
        order = CartOrder(
            user=user,
            full_name=address_instance.name,
            email=address_instance.email,
            mobile=address_instance.mobile,
            address=address_instance,  # Assign the Address instance here
            landmark=address_instance.landmark,
            city=address_instance.region,
            state=address_instance.region,  # Update as per your address model
            postalCode=address_instance.pin,
            item="Your Item",  # Update this as necessary
            price=100.00,  # Example price, adjust accordingly
            saved=0.00,  # Example saved amount, adjust accordingly
            shipping_method="Standard",  # Update this as necessary
            tracking_id="Tracking ID",  # Example tracking ID
            tracking_website="Tracking Website",  # Example tracking website
            paid_status=False,
            stripe_payment_intent="Stripe Intent",  # Example Stripe Intent
            order_date=timezone.now(),  # Use timezone.now() for current datetime
            product_status="processing",  # Example status
        )
        order.save()

        return redirect('core:order_confirmation')

    user = request.user
    addresses = Address.objects.filter(user=user)
    return render(request, "core/payment-getway.html", {"addresses": addresses})
  1. Шаблон:

Шаблон payment-getway.html устроен следующим образом:

Предпринятые шаги по устранению неисправностей:

  1. Проверьте шаблон URL в urls.py.
  2. Проверили функцию просмотра в views.py на наличие ошибок.
  3. Убедитесь, что шаблон payment-getway.html существует и находится в правильном каталоге.
  4. Перезагрузите сервер разработки Django.

Вопросы:

  1. Почему Django не находит URL /payment_getway/?
  2. Есть ли потенциальная проблема в том, как определен URL или как настроена функция представления?
  3. Есть ли какие-либо дополнительные проверки, которые я должен выполнить, чтобы убедиться, что маршрутизация URL настроена правильно?

Любые рекомендации или предложения будут высоко оценены!

Спасибо!

Вы не сопоставили свои URL с функциями представления. В вашем urls.py сначала импортируйте ваши представления

from . import views

Затем сопоставьте ваши URL с вашими представлениями:

urlpatterns = [
    path('payment_getway/', views.payment_getway, name='payment_getway'),
    path('order-confirmation/', views.order_confirmation, name='order_confirmation'),
]

Смотрите диспетчер URL

Здравствуйте. Я пользователь Django из Кореи.

Думаю, вы не добавили url в стандартный urls.py. urls.py, который находится в нескольких директориях приложения, нужно добавить в config/urls.py

# config/urls.py

urlpatterns = [
  ...
  path('payment_getway/', payment_getway, name='payment_getway'),
  path('order-confirmation/', order_confirmation, name='order_confirmation'),
]

OR

from django.urls import include
urlpatterns = [
  ...
  path({url path}, include({app name.urls})),
]
Вернуться на верх