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. Вы можете посмотреть альтернативные примеры относительного импорта из здесь

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