python Django Ninja API架构循环导入错误

aiazj4mn  于 2023-01-19  发布在  Python
关注(0)|答案(1)|浏览(203)

我有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)

我想做的是,我想获取:

  1. GET /api/todos-具有相关所有者的任务列表
  2. GET /api/todos/{task_id}-具有所有者的任务
  3. GET /api/users/{user_id}-具有所拥有任务列表的用户
    版本:
python = ^3.11
django = ^4.1.5
django-ninja = ^0.20.0

如果您需要更多信息,请告诉我。

nhaq1z21

nhaq1z211#

您可以检查两个模型的名称或文件名是否相同,如果这也不起作用,然后告诉他们在同一个文件中制作一个模型或在同一个文件中添加一个模型,这样就不会发生循环数据。
希望这对你有帮助。

相关问题