Django 的post_save
信号发送一个模型类参数 –sender
– 以及正在保存的实际实例 –instance
。
有没有办法在类型提示中区分两者?
例
我们有一个模型User
,并希望创建一个post_save
信号:
# …
@receiver([post_save], sender=User)
def send_activation_email(
sender: User,
instance: User,
# …
) -> None:
# …
如您所见,我已经给出了sender
和instance
相同类型的提示 -User
。但它们不是同一类型。第一个是类,第二个是对象。那么,有没有办法区分两者呢?
您要查找的是typing.Type
。
from typing import Type
# …
@receiver([post_save], sender=User)
def send_activation_email(
sender: Type[User],
instance: User,
# …
) -> None:
# …
由于@Michael0x2a的评论,发布了此答案以使其清晰易读。