Не открывает приложение django urls
В проекте есть приложение soap, но оно не открывается по ссылке, которую указываю в urls
project/urls.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('soap/', include('soap.urls'))
]
soap/urls.py:
from django.urls import path, include
from spyne.protocol.soap import Soap12
from spyne.server.django import DjangoView
from soap.views import hello_world_service, app, HelloWorldService
urlpatterns = [
path('hello_world/', hello_world_service),
path('say_hello/', DjangoView.as_view(
services=[HelloWorldService], tns='spyne.examples.django',
in_protocol=Soap12(validator='lxml'), out_protocol=Soap12())),
path('say_hello_not_cached/', DjangoView.as_view(
services=[HelloWorldService], tns='spyne.examples.django',
in_protocol=Soap12(validator='lxml'), out_protocol=Soap12(),
cache_wsdl=False)),
path('api/', DjangoView.as_view(application=app)),
]
При открытии mysite.com/soap, выдает 404 но mysite.com/admin открывается как надо
удали soap/ чтобы было
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('soap.urls'))
]
здесь ты говоришь, что при переходе из главной страницы, ты будешь попадать в soap.urls
для примера такой html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<ul class="list-group">
<li class="list-group-item"><a href="{% url 'hello_world' %}">ссылка</a></li>
<li class="list-group-item"><a href="{% url 'say_hello' %}">ссылка</a></li>
<li class="list-group-item"><a href="{% url 'say_hello_not_cached' %}">ссылка</a></li>
<li class="list-group-item"><a href="{% url 'api' %}">ссылка</a></li>
</ul>
</body>
</html>
при переходе из главной страницы по ссылке hello_world будет mysite.com/hello_world, а т.к ты указываешь soap/ django его не видит, соответственно при подключении нескольких приложений, всегда оставляй вначале пустое значение в кавычках, там будет url из url приложения, типа:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('soap.urls')),
path('', include('app1.urls')),
path('', include('app2.urls'))
]