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

Я пытаюсь создать 2 базы данных категорий и sous_categories в Django. В этих двух базах данных категория может иметь много sous_categories, а sous_categories имеет только одну категорию. Когда я тестирую свой код, я получаю сообщение "невозможно импортировать имя 'Categories' из частично инициализированного модуля 'categories.models' (скорее всего, из-за циклического импорта)".

Я думаю, что ошибка возникает из-за круговой зависимости, и самое решение, которое я вижу в Интернете: это может быть решено путем перемещения импортированных классов в третий файл и импорта их из этого файла. Но я не знаю, как это сделать с моим кодом.

вот часть моей модели категорий:


class Categories(models.Model):
    
    nom_categorie = models.CharField(max_length=200)
    marchand = models.ManyToManyField(Marchands)
    sous_categorie = models.ManyToManyField(Sous_Categories)
    slug = models.SlugField(default='')
    images = models.TextField(blank=True, null=True)
    created_at = models.DateTimeField(auto_now=True)
    updated_at = models.DateTimeField(null=True)```
`
    and my sous_categories model:

``from django.db import models
from django.template.defaultfilters import slugify
from categories.models import Categories

class Sous_Categories(models.Model):
    nom_souscategorie = models.CharField(max_length=200)
    categorie = models.ForeignKey(Categories, on_delete=models.SET_NULL, null=True, blank=True)
    slug = models.SlugField(default='')
    images = models.TextField(blank=True, null=True)
    created_at = models.DateTimeField(auto_now=True)
    updated_at = models.DateTimeField(null=True)``

Попробуйте передать в модели строку Categories вместо прямой передачи, как это

class Categories(models.Model):
    
    nom_categorie = models.CharField(max_length=200)
    marchand = models.ManyToManyField(Marchands)
    sous_categorie = models.ManyToManyField(Sous_Categories)
    slug = models.SlugField(default='')
    images = models.TextField(blank=True, null=True)
    created_at = models.DateTimeField(auto_now=True)
    updated_at = models.DateTimeField(null=True)```


class Sous_Categories(models.Model):
    nom_souscategorie = models.CharField(max_length=200)
    categorie = models.ForeignKey('app_name.Categories', on_delete=models.SET_NULL, null=True, blank=True)
    
Вернуться на верх