Я пытаюсь обновить свой сайт и столкнулся с этой проблемой, когда запустил «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