ImportError: cannot import name 'views' from 'birds_eye'
Недавно я начал изучать, как создавать проекты django с несколькими приложениями. Я узнал, что с помощью from . import views
я могу импортировать различные представления из текущего каталога, в котором я нахожусь. Однако при использовании этого метода подсказка выдает ошибку: ImportError: cannot import name 'views' from 'birds_eye'
Ниже приведено дерево каталогов моего проекта django:
birds_eye
|- accounts (app folder)
|- birds_eye (actual project folder)
|- clubs (app folder)
|- events (app folder)
|- posts (app folder)
|- static
|- templates
А это фактический код того, что происходит:
birds_eye
|- birds_eye (actual project folder)
|- urls.py
from django.contrib import admin
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.HomePage.as_view(), name="home"),
path("admin/", admin.site.urls),
path("test/", views.TestPage.as_view(), name="test"),
path("thanks", views.ThanksPage.as_view(), name="thanks"),
path('accounts/', include("accounts.urls", namespace="accounts")),
path("accounts/", include("django.contrib.auth.urls")),
# Events --> Calendar, Posts --> Feed | Expected to finish later on. Uncomment when done.
# path("posts/", include("posts.urls", namespace="posts")),
# path("events/", include("events.urls", namespace="events")),
path("clubs/", include("clubs.urls", namespace="clubs")),
path('surveys', include('djf_surveys.urls')),
]
Есть ли какое-нибудь решение для этого?
(Я могу отредактировать вопрос, чтобы предоставить больше ресурсов из моего проекта)
У вас нет файла views.py
в том же каталоге, что и файл urls.py
. Я предполагаю, что ваши views
находятся в других приложениях (клубы, посты и т.д.)?
Вам лучше импортировать каждое представление непосредственно из этих приложений, например, в вашем urls.py
from ..clubs.views import ...
Альтернативный вариант, если вы хотите продолжать двигаться по намеченному пути. Создайте файл views.py
в вашей папке birds_eye
(такой же, как urls.py
) и импортируйте туда все представления, используя тот же подход, который я описал выше. Затем вы должны иметь возможность импортировать представления в текущий каталог, и все необходимые вам представления будут там.
Ошибка указывает на то, что вы пропустили views.py
файл внутри папки, в которой находится urls.py
. Вы можете создать новый или импортировать функции представления из другого приложения или папки, как объяснил AshSmith88. Вы можете посмотреть альтернативные примеры относительного импорта из здесь