You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 16:31:14