Невозможно импортировать имя '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)