Как работает импорт в проекте python (django) или проблема с импортом моделей из тестов в проекте django

У меня проблема с импортом моделей из тестов в проекте django. Вот структура моего проекта:

D:\learn_django\mysite
|   db.sqlite3
|   manage.py
|   test.txt
|   tree.txt
|   
+---catalog
|   |   admin.py
|   |   apps.py
|   |   forms.py
|   |   models.py
|   |   urls.py
|   |   views.py
|   |   __init__.py
|   |             
|   +---tests
|   |   |   test_forms.py
|   |   |   test_models.py
|   |   |   test_views.py
|   |   |   __init__.py
|   |   |   
|   |   \---__pycache__
|   |           test_forms.cpython-39.pyc
|   |           test_models.cpython-39.pyc
|   |           test_views.cpython-39.pyc
|   |           __init__.cpython-39.pyc
|   |  

А файл test_models.py (в котором есть проблема с improt) выглядит так:

from catalog.models import Author
from django.test import TestCase

class AuthorModelTest(TestCase):
    @classmethod
    def setUpTestData(cls):
        # Set up non-modified objects used by all test methods
        Author.objects.create(first_name='Big', last_name='Bob')

    def test_first_name_label(self):
        author = Author.objects.get(id=1)
        field_label = author._meta.get_field('first_name').verbose_name
        self.assertEquals(field_label, 'first name')
  1. Если я буду импортировать так: from ..models import Author Это будет работать.

  2. Но если я напишу импорт так, как сказано в mozilla lesson: from catalog.models import Author Pycharm сообщает об ошибках: Unresolved reference 'catalog'

  3. Если я пытаюсь импортировать по абсолютному пути: from mysite.catalog.models import Author Тест проваливается с ошибкой: ModuleNotFoundError: No module named 'mysite.settings'

Здесь вы можете клонировать мой проект - https://gitlab.com/Galoperidol/learn_django3


Так что мои вопросы таковы:

  1. Почему второй и третий способы не работают?
  2. Почему, если я заменю папку "test" из папки "catalog" на папку "mysite" и попробую импортировать как: from ..catalog.models import Author Тест завершается с ошибкой: ModuleNotFoundError: No module named 'mysite.settings' Я знаю, что все папки для корректного импорта должны иметь файл init.py, чтобы быть пакетами, но это не помогает.
Вернуться на верх