Модуль Django - модель отсутствующих представлений - PullRequest
0 голосов
/ 14 мая 2019

Я слежу за книгой по тестированию коз. И я получил следующую проблему.

Я использую сервер django с python manage.py runserver.

Все же у меня есть эта ошибка.

  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/andykw/cloned_projects/unit-tests/superlists/superlists/urls.py", line 19, in <module>
    from lists import views
ModuleNotFoundError: No module named 'lists'

Я знаю, что в приложении views.py 1010 *

Это то, что у меня есть в urls.py

from django.contrib import admin
from django.urls import path
from django.conf.urls import url
from lists import views

urlpatterns = ['lists.views',
    #path('admin/', admin.site.urls),
    url(r'^$', views.home_page,name='home'),
]

Любые идеи приветствуются.

обновление

Это древовидная структура моего проекта

├── func_tests.py
├── geckodriver.log
├── lists
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── migrations
│   │   ├── __init__.py
│   │   └── __pycache__
│   │       └── __init__.cpython-36.pyc
│   ├── models.py
│   ├── __pycache__
│   │   ├── __init__.cpython-36.pyc
│   │   ├── tests.cpython-36.pyc
│   │   └── views.cpython-36.pyc
│   ├── tests.py
│   └── views.py
├── README.md
├── requirements.txt
└── superlists
    ├── manage.py
    └── superlists
        ├── __init__.py
        ├── __pycache__
        │   ├── __init__.cpython-36.pyc
        │   ├── settings.cpython-36.pyc
        │   └── urls.cpython-36.pyc
        ├── settings.py
        ├── urls.py
        └── wsgi.py

Ответы [ 2 ]

1 голос
/ 14 мая 2019

lists папка (приложение) в настоящее время находится вне папки проекта. Переместите его в папку superlists.

└── superlists
    ├── manage.py
    ├── lists
    │   ├── admin.py
    │   ├── apps.py
    │   ├── __init__.py
    └── superlists
        ├── __init__.py
        ├── __pycache__
        │   ├── __init__.cpython-36.pyc
        │   ├── settings.cpython-36.pyc
        │   └── urls.cpython-36.pyc
        ├── settings.py
        ├── urls.py
        └── wsgi.py

func_tests.py также имеет странное местоположение.

1 голос
/ 14 мая 2019

Попробуйте указать путь с включенным именем корневого приложения:

from superlists.lists import views

EDIT:

Когда вы опубликовали структуру своего проекта, кажется, что ваше lists приложение Django находится вне корневого каталога вашего проекта (./superlists) - они находятся на одном уровне вложенности.

Как указано в документации Django , когда вы создаете новое приложение с помощью manage.py startapp [app-name], оно создает папку со структурой вашего lists приложения, но внутри вашего первого superlists папка. Это означает, что по замыслу у вас должно быть что-то вроде этого:

└── superlists
    ├── manage.py
    ├── lists
    │   ├── ...
    └── superlists

И тогда начальный ответ, который я дал вам, должен начать работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...