Ошибка циклического импорта схемы API Django Ninja
У меня UserSchema
:
# users/models.py
class User(AbstractUser):
...
# users/schemas.py
from typing import List
from tasks.schemas import TaskSchema
class UserSchema(ModelSchema):
tasks: List[TaskSchema] = []
class Config:
model = User
...
... и TaskSchema
:
# tasks/models.py
class Task(models.Model):
...
owner = models.ForeignKey(User, related_name="tasks", on_delete=models.CASCASE)
# tasks/schemas.py
from users.schemas import UserSchema
class TaskSchema(ModelSchema):
owner: UserSchema
class Config:
model = Task
...
Но он бросает:
ImportError: cannot import name 'TaskSchema' from partially initialized module 'tasks.schemas' (most likely due to a circular import) (/Users/myname/codes/django/ninja-api/tasks/schemas.py)
Я хочу сделать следующее: я хочу получить:
GET /api/todos
- список задач со связанными владельцамиGET /api/todos/{task_id}
- задача с владельцемGET /api/users/{user_id}
- пользователь со списком принадлежащих ему задач
Версии:
python = ^3.11
django = ^4.1.5
django-ninja = ^0.20.0
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
Вы можете проверить, совпадает ли имя двух моделей или имя файла, если это также не работает, то скажите им сделать модель в том же файле или добавить эту модель в тот же файл, чтобы не происходило циркуляции данных.
Надеюсь, это поможет вам.