Как исправить ошибку ImportError: нет модуля с именем comments.models, если он существует в INSTALLED_APPS как «apps.comments»? - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь обновить свой сайт и столкнулся с этой проблемой, когда запустил «python manage.py makemigrations» после того, как у меня был «git pull origin master» моего обновленного проекта на ubuntu.

Traceback (последний вызов был последним): Файл "manage.py", строка 22, в execute_from_command_line (sys.argv) Файл "/home/ubuntu/python-portfolio/venv/local/lib/python2.7/site-packages/django/core/management/init.py", строка 364, в execute_from_command_line utility.execute () Файл "/home/ubuntu/python-portfolio/venv/local/lib/python2.7/site-packages/django/core/management/init.py" в строке выполнения django.setup () Файл "/home/ubuntu/python-portfolio/venv/local/lib/python2.7/site-packages/django/init.py", строка 27, в настройке apps.populate (settings.INSTALLED_APPS) Файл "/home/ubuntu/python-portfolio/venv/local/lib/python2.7/site-packages/django/apps/registry.py", строка 108, в заполнении app_config.import_models () Файл "/home/ubuntu/python-portfolio/venv/local/lib/python2.7/site-packages/django/apps/config.py", строка 202, в import_models self.models_module = import_module (models_module_name) Файл "/usr/lib/python2.7/importlib/init.py", строка 37, в файле import_module импорт (имя) Файл "/home/ubuntu/python-portfolio/apps/blog/models.py", строка 11, в из apps.comments.models import Комментарий

ImportError: нет модуля с именем comments.models

Однако это приложение создано и хранится как «apps.comments» в INSTALLED_APPS.

Я не уверен, как это сделать, потому что на localhost он работает нормально, и у меня не было проблемы ImportError. Приложение комментариев - это новая модель до обновления.

блог / models.py

from django.conf import settings
from django.contrib.contenttypes.models import ContentType
from django.db import models
from django.db.models.signals import pre_save
from django.urls import reverse
from django.utils import timezone
from django.utils.safestring import mark_safe
from django.utils.text import slugify

from markdown_deux import markdown
from apps.comments.models import Comment

комментарии / models.py

from django.db import models
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.conf import settings
from django.urls import reverse


class Comment(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1, on_delete=models.CASCADE)

    content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE, null=True)
    object_id = models.PositiveIntegerField(null=True)
    content_object = GenericForeignKey('content_type', 'object_id')
    parent = models.ForeignKey("self", null=True, blank=True, on_delete=models.CASCADE)
    content = models.TextField()
    updated_at = models.DateTimeField(auto_now=True)
    created_at = models.DateTimeField(auto_now_add=True)

    objects = CommentManager()

settings.py

INSTALLED_APPS = [
    # LOCAL APPS
    'apps.accounts',
    'apps.blog',
    'apps.work',
    'apps.comments',
    # DJANGO APPS
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.humanize',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # THIRD PARTY APPS
    'crispy_forms',
    'pagedown',
    'markdown_deux',
    'rest_framework',
]

Я надеюсь, что смогу выполнить миграцию, миграцию и сбор статистики, чтобы обновить мой сайт. Я ценю помощь сообщества.

Обновление

Я пытался закомментировать строку и запустить миграцию, чтобы посмотреть, что произойдет, но я столкнулся с похожими проблемами ImportError с другими частями приложения, такими как ImportError: Нет модуля с именем comments.forms.

Fixed

Вместо того, чтобы устанавливать это так:

from apps.comments.models import Comment

Указание на относительный путь сработало:

from ..comments.models import Comment
...