0

我有一个基于 Fastapi 和 tortoise orm 的应用程序。使用以下型号:

楷模 :

class Tratamiento(models.Model):

id = fields.UUIDField(pk=True)
nombre = fields.CharField(max_length=100)
descripcion = fields.CharField(max_length=300)
estado = fields.BooleanField()
costo = fields.IntField()


Tortoise.init_models(["db.models"], "models")
tratamiento_in = pydantic_model_creator(Tratamiento, name="TratamientoIn", exclude_readonly=True)
tratamiento_out = pydantic_model_creator(Tratamiento, name="TratamientoOut")


class Presupuesto(models.Model):

id = fields.UUIDField(pk=True)
paciente = fields.ForeignKeyField('models.Paciente', related_name="presupuesto_paciente", on_delete=fields.CASCADE)
tratamiento = fields.ManyToManyField('models.Tratamiento', related_name="presupuesto_tratamiento", on_delete=fields.CASCADE)
descripcion = fields.CharField(max_length=500)
total = fields.IntField()
fecha = fields.DateField()


Tortoise.init_models(["db.models"], "models")
presupuesto_in = pydantic_model_creator(Presupuesto, name="PresupuestoIn", exclude_readonly=True)
presupuesto_out = pydantic_model_creator(Presupuesto, name="PresupuestoOut")

我正在尝试将一些值从 vuejs 发布到这条路线:

路线:

@router.post("/presupuestos/add", response_model=presupuesto_out)
async def post_presupuesto(presupuesto: presupuesto_in, tratamientos: List[TratamientosPydantic]):

for item in tratamientos:
    presupuesto.total += item.costo

insert_result = await Presupuesto.create(**presupuesto.dict(exclude_unset=True))
for item in tratamientos:
    tratamiento = await tratamiento_out.from_queryset_single(Tratamiento.get(id=item.tratamiento_id))
    insert_related = await insert_result.tratamiento.add(*tratamiento)

而且我在向多对多字段添加值时遇到下一个错误(创建工作正常),不知道如何解决它......请帮助!

AttributeError:类型对象“元组”没有属性“_meta”

路线参数模式:

class TratamientosPydantic(BaseModel):
paciente_id: str
tratamiento_id: str
costo: int
4

0 回答 0