ImportError: невозможно импортировать имя 'Item' из частично инициализированного модуля 'core.models' (скорее всего, из-за циклического импорта)

Вот полный отслеживание:

Traceback (most recent call last): File
   "C:\Users\Abdul\OneDrive\Desktop\django-ecommerce-master\manage.py",
   line 15, in <module> execute_from_command_line(sys.argv) File
   "C:\Users\Abdul\.virtualenvs\django-ecommerce-master-FJQqFcPP\lib\site-packages\django\core\management\__init__.py",
   line 446, in execute_from_command_line utility.execute() File
   "C:\Users\Abdul\.virtualenvs\django-ecommerce-master-FJQqFcPP\lib\site-packages\django\core\management\__init__.py",
   line 420, in execute django.setup() File
   "C:\Users\Abdul\.virtualenvs\django-ecommerce-master-FJQqFcPP\lib\site-packages\django\__init__.py",
   line 24, in setup apps.populate(settings.INSTALLED_APPS) File
   "C:\Users\Abdul\.virtualenvs\django-ecommerce-master-FJQqFcPP\lib\site-packages\django\apps\registry.py",
   line 116, in populate app_config.import_models() File
   "C:\Users\Abdul\.virtualenvs\django-ecommerce-master-FJQqFcPP\lib\site-packages\django\apps\config.py",
   line 269, in import_models self.models_module =
   import_module(models_module_name) File
   "C:\Users\Abdul\AppData\Local\Programs\Python\Python310\lib\importlib\__init__.py",
   line 126, in import_module return
   _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen
   importlib._bootstrap>", line 1027, in _find_and_load File "<frozen
   importlib._bootstrap>", line 1006, in _find_and_load_unlocked File
   "<frozen importlib._bootstrap>", line 688, in _load_unlocked File
   "<frozen importlib._bootstrap_external>", line 883, in exec_module
   File "<frozen importlib._bootstrap>", line 241, in
   _call_with_frames_removed File "C:\Users\Abdul\OneDrive\Desktop\django-ecommerce-master\wishlist\models.py",
   line 3, in <module> from core.models import Item File
   "C:\Users\Abdul\OneDrive\Desktop\django-ecommerce-master\core\models.py",
   line 8, in <module> from location.models import Warehouse, Zone,
   Section, Level File
   "C:\Users\Abdul\OneDrive\Desktop\django-ecommerce-master\location\models.py",
   line 3, in <module> from core.models import Item ImportError: cannot
   import name 'Item' from partially initialized module 'core.models'
   (most likely due to a circular import)
   (C:\Users\Abdul\OneDrive\Desktop\django-ecommerce-master\core\models.py)

Теперь это доставляет неудобства. Раньше все работало, а теперь вдруг выдает ошибку. Я знаю, что означает циркулярный импорт, но раньше это работало. Теперь, поле 'product' дает мне проблему.

from django.db import models
from appsystem.models import Outlet
from core.models import Item, Supplier
from location.models import Warehouse, Zone, Section, Level


class MainPurchases(models.Model):
    METHOD_A = 'CASH'
    METHOD_B = 'CREDIT'

    PAYMENT_METHODS = [
        (METHOD_A, 'CASH'),
        (METHOD_B, 'CREDIT'),
    ]

    product = models.ForeignKey(Item, on_delete=models.PROTECT)
    quantity = models.PositiveSmallIntegerField()
    purchase_price = models.DecimalField(max_digits=6, decimal_places=2)
    paid_amount = models.DecimalField(max_digits=6, decimal_places=2)
    date_created = models.DateTimeField(auto_now_add=True)
    supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)
    outlet = models.ForeignKey(Outlet, on_delete=models.CASCADE, blank=True, null=True)
    payment_method = models.CharField(max_length=6, choices=PAYMENT_METHODS, default=METHOD_A)

Ах, проблема была в основном приложении, где я использовал оператор import для импорта некоторых классов (склад, зона и т.д.). Удаление этого оператора решило проблему. До сих пор не знаю, почему это произошло.

Вернуться на верх