属性错误:'int'对象没有属性'_saved_in_db' Fastapi Tortoise(orm)



执行API请求时出现此错误。这里是models.py

类UserModel (models.Model):

id = fields.IntField(pk=True)
email = fields.CharField(null=False, max_length=255)
full_name = fields.CharField(null=True, max_length=255)
mobile = fields.CharField(null=True, max_length=255)
class Meta:
table: str = 'users'

类项目(models.Model):

id = fields.IntField(pk=True)
project_name = fields.CharField(null=False, max_length=255)
user_id = fields.ForeignKeyField(
"models.UserModel", related_name="items", null=True)

router.py

from models import users

@auth_router.post("/add_project"

async def register(form_data: users. data)project = Depends()):

project = await users.project.create(project_name=form_data.project_name,user_id=1)
await project.save()

只是想用外键发布数据。但这是不允许的。需要帮助。提前谢谢。

在文档的这一部分(https://tortoise.github.io/models.html#the-db-backing-field)中,它描述了您将'_id'附加到字段名。

修复方法如下:

class project(models.Model):
id = fields.IntField(pk=True)
project_name = fields.CharField(null=False, max_length=255)
user = fields.ForeignKeyField(
"models.UserModel", related_name="items", null=True
)

你只需要使用'user',因为tortoise会将'_id'附加到任何ForeignKeyFields。

另一种方法可以修复它(可能不是你想要的):

project = await users.project.create(project_name=form_data.project_name,user_id_id=1)
await project.save()

最新更新