'payments' не является зарегистрированным пространством имен

Мне кажется, я хорошо справился с отображением URL, так что, пожалуйста, проверьте его

from django.urls import path
from . import views

app_name = 'payments'

urlpatterns = [
    path('request/<int:order_id>/', views.payment_request, name='payment_request'),
    path('success/', views.payment_success, name='payment_success'),
    path('fail/', views.payment_fail, name='payment_fail'),
    path('checkout/', views.checkout_view, name='checkout'),
]
def checkout_view(request):
    return render(
        request,
        'checkout.html',
    )
<form method="post" action="{% url 'payments:checkout' %}">
    {% csrf_token %}
    {{ form.as_p }}

создано app_name = 'payments'

Причина этой проблемы в том, что вы используете обратный URL в своей форме (action="{% url 'payments:checkout' %}"), но не включили URL вашего приложения в проект.

Для решения этой проблемы необходимо включить в проект файл "payments.urls". Предположим, что название вашего проекта - "shop". В shop.urls в urlpatterns необходимо добавить следующую строку:

path('', include("payments.urls")),

Сделав это, Django сможет определить URL приложения, и после этого вы сможете использовать обратный URL. Также не забудьте прописать название вашего приложения в INSTALLED_APP.

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