gpt4 book ai didi

python - 如何在 Django QuerySet 中使用 Python 类型提示?

转载 作者:IT老高 更新时间:2023-10-28 21:45:26 25 4
gpt4 key购买 nike

是否可以使用 Python 类型提示在 Django QuerySet 中指定记录类型? QuerySet[SomeModel] 之类的东西?

例如,我们有模型:

class SomeModel(models.Model):
smth = models.IntegerField()

我们想将该模型的 QuerySet 作为参数传递给 func:

def somefunc(rows: QuerySet):
pass

但是如何在 QuerySet 中指定记录的类型,比如 List[SomeModel]:

def somefunc(rows: List[SomeModel]):
pass

但是使用查询集?

最佳答案

一种解决方案可能是使用联合类型。

from typing import Union, List
from django.db.models import QuerySet
from my_app.models import MyModel

def somefunc(row: Union[QuerySet, List[MyModel]]):
pass

现在,当您对 row 参数进行切片时,它会知道返回的类型是 MyModel 的另一个列表或 MyModel 的实例,同时还暗示 QuerySet 的方法 类也可用于 row 参数。

关于python - 如何在 Django QuerySet 中使用 Python 类型提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42397502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com