tortoise-orm filter values之后没有count()方法
时间: 2024-02-06 13:09:05 浏览: 185
Tortoise-ORM中的`filter`方法返回的是一个`QuerySet`对象,它代表了符合条件的所有模型实例。如果你想获取符合条件的模型实例的数量,可以使用`count`方法。例如:
```python
from tortoise.models import Model
from tortoise import fields
from tortoise import Tortoise
class User(Model):
id = fields.IntField(pk=True)
username = fields.CharField(max_length=50)
age = fields.IntField()
class Meta:
table = "users"
async def main():
await Tortoise.init(db_url="sqlite://:memory:", modules={"models": ["__main__"]})
await Tortoise.generate_schemas()
# 创建一些模型实例
await User.create(username="alice", age=20)
await User.create(username="bob", age=30)
await User.create(username="charlie", age=40)
# 获取符合条件的模型实例的数量
count = await User.filter(age__gte=30).count()
print(count) # 输出:2
if __name__ == "__main__":
import asyncio
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```
注意,如果你想使用`count`方法,需要在调用`filter`方法之后进行。如果你在调用`filter`方法之前调用`count`方法,会产生一个错误。
阅读全文