我正在使用 Django 4.1.7 和 django-stubs 1.16.0,以及 mypy 1.1.1.
我有这样的代码:
class ProductQuerySet(QuerySet):
...
class ProductManager(Manager):
def create_red_product(self, **kwargs) -> "Product":
return self.model(color=Product.Color.RED, **kwargs)
_product_manager = ProductManager.from_queryset(ProductQuerySet)
class Product(Model):
...
objects = _product_manager()
当 mypy 看这个的时候,它说:
models/product.py:46: error: Incompatible return value type (got "_T", expected "Product") [return-value]
模型管理器方法中
self.model
的类型似乎是_T
,据我所知这是绑定到模型的通用类型,在我的例子中应该是“产品”。
为什么这不起作用?我该如何解决?