Использование Django с Python - Просмотры не определяются при попытке импорта - PullRequest
1 голос
/ 11 июля 2020

Я работаю над следующим видео YouTube на Django и Python, так как я собираюсь создать свое первое приложение и пытаюсь узнать, как работает Django:

https://www.youtube.com/watch?v=F5mRW0jo-U4

Я работаю над добавлением новых представлений в приложение под названием Pages и пытаюсь импортировать представления из этого приложения, но по какой-то причине продолжаю получать:

NameError : 'views' не определено. Я уверен, что это что-то маленькое, чего мне не хватает из-за моей новизны с python в целом и с импортом. Вот мой текущий код:

from django.contrib import admin
from django.urls import path

#from Pages import views
from Pages.views import homepage_view, toybox_view, lounge_view, gym_view

urlpatterns = [
    path('', views.homepage_view, name='home'),
    path('toybox/', views.toybox_view, name='toybox'),
    path('lounge/', views.lounge_view, name='lounge'),
    path('gym/', views.gym_view, name='gym'),
    path('admin/', admin.site.urls),

]

Второй оператор 'from' - тот, который не работает - закомментированный оператор работает, я просто пытался быть более конкретным c с моим импортом. У меня есть папка sr c, в которой находится мой проект - DogtopiaWeb и два приложения, Dogs и Pages. Внутри приложения Pages находится файл views.py, который я пытаюсь импортировать с помощью приведенного выше оператора from.

Есть идеи, почему он не может идентифицировать views.py внутри каталога приложения Pages? Я импортирую его в urls.py, который находится внутри проекта DogopiaWeb.

Первый снимок экрана - это мой каталог root с manage.py, двумя приложениями и основным проектом. Второй снимок экрана находится внутри приложения «Pages», на котором показан файл views.py, который при импорте не удается идентифицировать.

enter image description here введите описание изображения здесь

Спасибо!

1 Ответ

3 голосов
/ 11 июля 2020

Проблема в том, что вам не требуется views из вашего приложения Pages, вы уже импортируете указанные c представления в:

from Pages.views import homepage_view, toybox_view, lounge_view, gym_view

, поэтому используйте следующее:

urlpatterns = [
    path('', homepage_view, name='home'),
    path('toybox/', toybox_view, name='toybox'),
    path('lounge/', lounge_view, name='lounge'),
    path('gym/', gym_view, name='gym'),
    path('admin/', admin.site.urls),

]

или, если вы хотите использовать views.name_of_your_view, вам необходимо импортировать строку, которую вы прокомментировали from Pages import views, и удалить другую.

...