Ошибка ModuleNotFound при миграции новой модели
Вот моя модель:
class Company(models.Model):
class LTRCharField(models.CharField):
def formfield(self, **kwargs):
defaults = {'widget': TextInput(attrs={'dir': 'ltr'})}
defaults.update(kwargs)
return super().formfield(**defaults)
title = models.CharField(_('company title'), max_length=255)
logo = FileBrowseField(
_('company logo'), max_length=255, directory='company/', extensions=['.png']
)
address = models.TextField(_('company address'))
phone = LTRCharField(_('company phone'), max_length=20)
class Meta:
verbose_name = _('company')
verbose_name_plural = _('company')
def __str__(self):
return self.title
Команда управления migrate
дает мне такую ошибку:
ModuleNotFoundError: No module named 'company.models.Company'; 'company.models' is not a package
Когда я смотрю на файл миграции, я вижу, что эта строка содержит ошибку:
import company.models.Company
Я не могу понять, в чем здесь дело?
Полагаю, вы забыли предупредить Python о том, что migration (папка) является пакетом, а не просто папкой, включив __init__.py
файл в папку migration. Без вышеуказанного файла init он не сможет работать. Чаще всего это происходит, когда мы удаляем папку миграции и создаем ее заново, не предупреждая Python о том, что это пакет для любого импорта, который мы хотим осуществить. Также убедитесь, что company
является частью вашего списка INSTALLED_APPS
в файле settings.py
#create this file inside your migration folder, and even check your company's app whether it has it, if not kindly create the file there also.
__init__.py
Однако, если ошибка сохранится, в чем я сомневаюсь, измените путь импорта на:
from company.models import Company