Как импортировать несколько представлений для urls.py?
Мне нужно импортировать представления из horoscopes и dates. но при импорте их в urls.py возникает конфликт, из-за которого воспринимается только одно представление. вот и вопрос, как мне импортировать несколько представлений?
`
from django.contrib import admin
from django.urls import path
import horoscopes
import dates
urlpatterns = [
path('admin/', admin.site.urls),
path('horoscopes/leon', horoscopes.views.monday),
path('dates/monday', dates.views.monday),
]
`
Я пробовал оба варианта и:
`
import horoscopes
import dates
urlpatterns = [
path('admin/', admin.site.urls),
path('horoscopes/leon', horoscopes.views.monday),
path('dates/monday', dates.views.monday),
`
а также: `
from django.contrib import admin
from django.urls import path
from horoscopes import views as horoscopes_views
from dates import views as dates_views
urlpatterns = [
path('admin/', admin.site.urls),
path('horoscopes/leon', views.leon),
path('dates/monday', views.monday),
]
`
оба варианта игнорируют один из видов
Как подсказал voodoo-burger, браузер может отображать только одну страницу одновременно. Поэтому либо переименуйте ваши URL в более конкретные имена, чтобы различать представления, либо ищите URL Namespacing.
Из документации Django:
from django.urls import path
from . import views
app_name = 'polls'
urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('<int:pk>/', views.DetailView.as_view(), name='detail'),
...
]
Затем назовите ваш URL следующим образом:
reverse('polls:index', current_app=self.request.resolver_match.namespace)
Вы можете попробовать следующий код
from django.contrib import admin
from django.urls import path
from horoscopes import views as horoscopes_views
from dates import views as dates_views
urlpatterns = [
path('admin/', admin.site.urls),
path('horoscopes/leon', horoscopes_views.leon),
path('dates/monday', horoscopes_views.monday),
]
Я нашел наиболее оптимальное решение своей проблемы, и оно заключалось в создании в каждом приложении отдельного файла urls.py, отдельно добавляя туда все адреса URL в таком виде:
в каждом из моих приложений необходимые гороскопы и я добавил отдельный файл под названием urls.py и ввел в него следующее:
from django.urls, import the path
from . import views # the dot indicates that we are referring to the directive in which the file is located
urlpatterns = [
path('scorpion/', views.scorpion),
path('leon/', views.leon),
]
и по тому же сценарию, я добавил в другое приложение для url
from django.utils, import the path
from . import views
urlpatterns = [
path('monday/', views.monday),
]
Основной включает приложение urls.py оно выглядит так:
from django.contrib, import admin
from the django.utils import path, including
urlpatterns = [
path('admin/', admin.site.urls),
path('horoscopes/', include("horoscopes.urls")),
path('dates/', include("dates.urls")),
]