当前位置: 首页 > 工具软件 > tortoise-orm > 使用案例 >

FastAPI Tortoise-ORM annotate()方法的简单使用

仇浩旷
2023-12-01

下面是一个使用Tortoise-ORM的annotate()方法的例子:

from tortoise import fields, models
from tortoise.queryset import F


class Book(models.Model):
    id = fields.IntField(pk=True)
    name = fields.CharField(max_length=255)
    author = fields.CharField(max_length=255)
    price = fields.FloatField()

    class Meta:
        table = 'book'


async def get_books_with_discount():
    books = await Book.annotate(discount_price=F('price')*0.8).all()
    return [book.to_dict() for book in books]

在上面的代码中,我们定义了一个Book模型来表示一本书。在get_books_with_discount()函数中,我们使用.annotate()方法来添加一个新的计算列,这个计算列代表了每本书打折后的价格。我们使用F()函数来引用price字段,并将其乘以0.8。

最后,我们使用.all()方法来查询所有的书籍,并返回一个字典格式的列表,其中包含了每本书的ID、名称、作者、价格和打折后的价格。

 类似资料: