执行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()