Django Stubs中ForeignKey的第二个类型参数_GT应填什么?
Django ForeignKey 第二个类型变量 _GT 的取值说明
在你提供的代码片段中,ForeignKey的第二个类型变量_GT应填入**ExtensionOrder**,具体说明如下:
- 从django-stubs 1.14.0的类型定义逻辑来看,
ForeignKey继承自ForeignObject[_ST, _GT]:_ST代表关联的目标模型类(此处为ExtensionOrder)_GT代表从当前模型实例访问该字段时返回的实际类型
- 由于你设置了
null=False,访问该字段时会直接返回关联的ExtensionOrder实例,不会返回None,因此_GT的取值与_ST完全一致。
修正后的代码示例(提前导入模型):
from django.db.models import ForeignKey, PROTECT from subscriptions.models import ExtensionOrder order = ForeignKey[ExtensionOrder, ExtensionOrder]( "subscriptions.ExtensionOrder", null=False, on_delete=PROTECT )
若需避免循环导入,也可使用字符串前向引用:
from django.db.models import ForeignKey, PROTECT order = ForeignKey["ExtensionOrder", "ExtensionOrder"]( "subscriptions.ExtensionOrder", null=False, on_delete=PROTECT )
内容的提问来源于stack exchange,提问作者boatcoder
相关产品推荐
相关产品推荐

