«Класс модели myproject.models.MyModel не объявляет явную метку app_label во время« теста Django » - PullRequest
0 голосов
/ 22 января 2020

При Django 2.2.9 я получаю следующую ошибку при попытке запустить ./manage test

File "/home/simernes/workspace/myproject/myapp/test/test_functions.py", line 3, in <module>
    from ..functions import make_response
File "/home/simernes/workspace/myproject/myapp/functions.py", line 2, in <module>
    from .serializers import MyModelSerializer, \
File "/home/simernes/workspace/myproject/myapp/serializers.py", line 2, in <module>
    from .models import MyModel, \
File "/home/simernes/workspace/myproject/myapp/models.py", line 7, in <module>
    class MyModel(models.Model):
File "/home/simernes/workspace/myproject/env/lib/python3.7/site-packages/django/db/models/base.py", line 111, in __new__
    "INSTALLED_APPS." % (module, name)
RuntimeError: Model class myproject.myapp.models.MyModel doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

в функциях, я импортирую модель следующим образом:

functions.py:

from .models import MyModel

def make_response():
    print("lorem ipsum")

Похоже, что при простом импорте чего-либо из файла, содержащего расширение класса Model, эта ошибка возникает, потому что это происходит со следующим определением теста:

from django.test import TestCase
from ..functions import make_response


class MyTestCase(TestCase):
    def setUp(self):
        pass

    def test_make_response(self):
        self.assertTrue(True)

Есть ли способ решить эту проблему?

Установленные приложения:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'django_filters',
    'corsheaders',
    'myapp',
]
...