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

Django中post_save信号保存后如何获取数据?

Django post_save 信号机制实操说明
  • post_save 信号会在模型实例执行 save() 方法之后触发,不管是新增记录还是更新已有记录都会触发这个信号。
  • 在信号接收器里,通过传入的 instance 参数能直接拿到实例的主键(pk),示例代码如下:
from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import Comment

@receiver(post_save, sender=Comment)
def post_save_comment(sender, instance, **kwargs):
    # 获取当前Comment实例的主键
    current_pk = instance.pk
    # 这里可以写基于pk的后续逻辑,比如更新关联数据、生成操作日志等
  • 能拿到有效pk的原因:post_save是在实例完全保存到数据库之后才触发的——如果是新增实例,此时数据库已经为它分配了主键;如果是更新实例,主键本身就存在,所以instance.pk一定是有效值。

内容的提问来源于stack exchange,提问作者paaaaaaaaaaaaaaaaaaaaa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 07:32:03