add如何使 django post_save 信号仅在创建期间运行

2024-01-12

我在项目中使用 django-notifications,并且我想在使用信号创建模型时通知特定用户,但是在更新模型时 post_save 也会运行,如何防止这种情况并仅运行 post_save 方法当创建模型时。

模型.py

class Card(models.Model):
    user = models.ForeignKey(User,on_delete=models.CASCADE)
    title = models.CharField(max_length=100)
    description = models.TextField(blank=True)
    list = models.ForeignKey(List, related_name='cards')
    story_points = models.IntegerField(null=True, blank=True)
    business_value = models.IntegerField(null=True, blank=True)

    def __str__(self):
        return "Card: {}".format(self.title)

def my_handler(sender, instance, **kwargs):
    if instance.pk is None:
        notify.send(instance.user, recipient=User.objects.get(pk=1),   target=instance, verb='created')  

post_save.connect(my_handler, sender=Card)    

我尝试使用 if instance.pk is None,但是当我添加此条件时,它根本不运行。

编辑:检查代码是否已创建

def my_handler(sender, instance, created, **kwargs):
    if created:
        notify.send(instance.user, recipient=User.objects.get(pk=1), target=instance, verb='created')  

有一个创建的命名参数,如果它是一个新对象,它将被设置为 True。

看看这里——https://docs.djangoproject.com/en/1.10/ref/signals/#post-save https://docs.djangoproject.com/en/1.10/ref/signals/#post-save

def my_func(sender, instance, created, **kwargs):
    print("Created: ", created)

class MyModel(models.Model):
    x = models.CharField(max_length=255)

post_save.connect(my_func, sender=MyModel)

>>> MyModel.objects.create(f='asdf')
Created:  True
>>> m = MyModel.objects.all().first()
>>> m.x
'asdf'
>>> m.x = 'a'
>>> m.save()
Created:  False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

add如何使 django post_save 信号仅在创建期间运行 的相关文章

随机推荐

  • 需要将光标置于文本区域中文本的开头

    我体内有这个并且有效 onLoad document forms post message focus 但我需要将光标放在textarea在任何现有文本的开头 而不是结尾 这就把它放在最后了 function moveCaretToStar
  • 布尔注释导致重复?

    我正在尝试实现一个基于外键表的基本 收藏夹 系统 假设我有以下简单模型 class Item models Model id models IntegerField class User models Model id models Int
  • 如何在 JavaScript 中复制 div

    我想知道如何复制DIV通过 JavaScript 多次编辑元素 而不在我的 html 代码中复制 DIV 假设您选择了 div 执行以下操作 var myDiv document getElementById myDivId DOM API
  • Twitter Bootstrap 使用 JSON 进行预输入

    我如何将 Twitter Bootstrap Typeahead 与 JSON 结合使用 我的 Bootstrap 版本是2 2 1 我的 JSON 响应 label Sistemski Administrator value 1 labe
  • 完全滑动 UITableViewCell 删除 UITableView iOS 8

    我想模仿 UITableViewCell 的滑动删除功能 就像 iOS 8 中的邮件应用程序一样 我不是指滑动以显示删除按钮 我指的是当你滑动时 它会显示 3 个操作 但如果你继续向左滑动 电子邮件就会被删除 在 iOS 8 中 UITab
  • Ionic - 仅在具体页面中显示侧面菜单

    我正在使用 Ionic Framework 开发一个应用程序 我只想在一些具体视图中显示侧面菜单 而不是在每个视图中 我有我的菜单 html file
  • ORA-12519,TNS:未找到适当的服务处理程序

    我正在正确关闭休眠连接 但在几次点击或刷新一些页面后我收到此错误 我不明白有什么问题 我还检查了会话数量 它也通过以下命令增加 并且还给出了程序代码 托管bean代码 public List
  • Whatsapp 身份验证如何运作?

    我想开发一个移动应用程序并使用类似whatsapp的用户注册 现在我记得几年前讨论过的安全问题 Whatsapp 过去仅通过电话号码和 IMEI 来验证用户身份 当然 这并不是真正安全 但我真的不知道如何更安全 现在我已经很长一段时间没有听
  • 调用 python webbrowser 时抑制/重定向 stderr

    我有一个 python 程序 它在新的浏览器窗口中的单独选项卡中打开多个网址 但是当我从命令行运行该程序并使用打开浏览器时 webbrowser open new url Firefox 的 stderr 打印到 bash 查看文档我似乎找
  • 术语的含义 - 资源获取就是初始化

    我知道 RAII 是做什么的 这都是为了在代码抛出异常时防止内存泄漏等 现在我想明白这句话的意思smart term http en wikipedia org wiki 收购 http en wikipedia org wiki Acqu
  • 如何在点击按钮时发出小闪光?

    所以我正在制作一个有超过 100 个按钮的 Android 应用程序 但是你知道当你正常点击一个按钮时 当你不改变背景或任何东西时 它会闪烁橙色 然而 由于我已经为按钮添加了背景颜色 当点击它们时 它只会进入下一个屏幕 并且您无法看出您已经
  • 在Monaco编辑器中,如何从IEditor界面获取选定的文本

    迷失在 API 的电报文档中 如何从 IEditor 界面获取选定的文本 这selection返回的对象getSelection只有行号和列号 那么我是否需要在编辑器的文本中搜索该文本 并且 与返回的所有其他选择相比 主要选择是什么getS
  • 为什么我的 ibtool 失败,退出代码为 255?

    突然间我无法构建我的项目 我收到以下编译器错误 Applications Xcode app Contents Developer Platforms iPhoneSimulator platform Developer usr bin i
  • LLVM 检索 AllocaInst 的名称

    我正在尝试检索传递给 a 的指针的名称cudaMalloc https docs nvidia com cuda cuda runtime api group CUDART MEMORY html group CUDART MEMORY 1
  • UI Router 从列表页面加载详细信息页面

    使用 ui router 的 AngularJS 应用程序 我的列表页面加载正确 但是当单击列表页面上的链接时 我的 url 发生了变化 但页面上的 html 没有变化 它仍然保留在列表页面上 这个路由有什么问题吗 app js var m
  • CGContext 擦除错误

    我不断收到此错误 Jan 31 13 56 51 Michaels MacBook Air local CocoaDrawing 2129
  • Spring加密和解密属性文件中的API密钥

    原始问题 我有一个位于 Tomcat 中的属性文件和一个位于 src test resources 中的用于测试的属性文件 目前我有以下设置 我的属性文件加载到我的 XML 文件中配置文件
  • 在 Asp.Net Core Web API 中使用 MassTransit 消息时如何对用户进行身份验证?

    我有几个使用 Bearer 身份验证的 Asp Net Core Web APIIdentityServer4 AccessTokenValidation用于内省令牌 验证用户身份并创建声明的中间件 这对于 HTTP 请求来说效果很好 我正
  • Django 模型 = 业务逻辑 + 数据访问?或者数据访问层应该从 django 模型中分离出来?

    在 Django 中 建议的软件架构是将所有业务逻辑和数据访问放在模型中 但是 一些同事建议数据访问层应该与业务逻辑 业务服务层 分开 他们的理由是 如果使用不同的数据源 数据访问层可以隔离更改 他们还表示 业务逻辑可以存在于多个模型中 但
  • add如何使 django post_save 信号仅在创建期间运行

    我在项目中使用 django notifications 并且我想在使用信号创建模型时通知特定用户 但是在更新模型时 post save 也会运行 如何防止这种情况并仅运行 post save 方法当创建模型时 模型 py class Ca