使用 Django 的 post_save() 信号

2024-06-02

我有两张桌子:

class Advertisement(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    author_email = models.EmailField()

class Verification(models.Model):
    advertisement = models.ForeignKeyField(Advertisement)
    key = models.CharField(max_length=32)

添加新广告后,我需要自动填充验证表。

def gen_key(sender, instance, created, **kwargs):
    if created:
        from hashlib import md5
        vkey = md5("%s%s" % (instance.author_email, instance.created_at))
        ver = Verification(advertisement=instance)
        ver.key = vkey
        ver.save()

post_save.connect(gen_key, sender=Advertisement)

当然是行不通的。姜戈1.2 问:我该怎么办?


好吧,解决了一半。
问题是父模型的 post_save() 不会调用子模型。
所以你可以通过直接提供子类来解决它。

class Advertisement(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    author_email = models.EmailField()

class Sale(Advertisement):
    rooms = models.IntegerField(max_length=1)
    subway = models.ForeignKey(Subway)

class Verification(models.Model):
    advertisement = models.ForeignKeyField(Advertisement)
    key = models.CharField(max_length=32)

def gen_key(sender, instance, created, **kwargs):
    code goes here
post_save.connect(gen_key, sender=Sale, dispatch_uid="my_unique_identifier")

所以下一个问题是“如何使用父类进行 post_save() ?”


无需连接到特定的发件人,只需一般连接到 post_save 并检查处理程序中已保存实例的类,例如

def gen_key(sender, **kwargs):
    if issubclass(sender, Advertisement):
        code goes here
post_save.connect(gen_key, dispatch_uid="my_unique_identifier")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Django 的 post_save() 信号 的相关文章

随机推荐

  • 迁移到Java 9或更高版本时是否需要切换到模块?

    我们目前正在从 Java 8 迁移到 Java 11 但是 升级我们的服务并没有我们预期的那么痛苦 我们基本上只需要更改我们的版本号build gradle文件和服务都顺利启动并运行 我们升级了库以及使用这些库的 微 服务 到目前为止没有问
  • 尝试获取屏幕上绘制的每个随机圆圈的 x、y 坐标

    您好 我正在制作一款游戏 该游戏将在屏幕上创建随机圆圈 随机创建的圆圈的值为红色或绿色 我的问题是 我希望不仅能够确定用户何时单击其中一个圆圈 而且还能够确定他们最终单击的圆圈 红色或绿色 下面是我的代码 我的主要问题是试图找到将要绘制的圆
  • 如何使用pycaffe重构caffe网络

    我想要的是 加载网络后 我将分解一些特定的图层并保存新的网络 例如 原网 数据 gt conv1 gt conv2 gt fc1 gt fc2 gt softmax New net 数据 gt conv1 1 gt conv1 2 gt c
  • 如何在 C# 中使用 IUIAutomation::ElementFromIAccessible 方法?

    我尝试过使用ElementFromIAccessible方法通过 System Windows Automation DllImport UIAutomationClient dll public static extern int Ele
  • ActiveRecord 嵌套 SELECT——我可以在没有手动 SQL 的情况下完成它吗?

    我有一张桌子 上面有 除其他外 一个名字和一个等级 我想返回所有唯一名称的集合 但对于返回的每个名称 我想选择排名最高的行 这很简单 有两个嵌套的 SELECT 语句 SELECT FROM SELECT FROM foo ORDER BY
  • 如何添加缺少的 RANDR 扩展

    我已经在无头服务器上设置了 xvfb 服务器 当我运行时 显示 99 火狐 我收到此异常缺少 RANDR 扩展 他们中的许多人说要从 xorg conf 文件中禁用某些 xinerna 但在我的情况下并未创建该文件 所以我正在寻找如何添加缺
  • 未定义的变量(opencart)

    在错误明显的行上 代码如下所示 我知道这可能是一个模糊的问题 但如果有人可以提供帮助 那就太好了 这是一个非常模糊的问题 您很可能会在 header tpl 中收到此错误 因为您正在使用为 1 5 4 x 或更早版本 和 1 5 5 x 制
  • nginx - 使用 ssl 支持设置多个 server_name

    我很想使用 nginx 来为具有多个域名和 SSL 的网站提供服务 webmail example com webmail beispiel de 两者都使用相同的虚拟主机 因此我只设置 server name 两次 问题是 我需要 ngi
  • 尝试写一个无锁的单链表,麻烦去除

    我正在尝试编写一个无锁单链表 最终一致性不是问题 有人遍历可能包含不正确项目的列表 我认为我正确添加了项目 循环和Interlocked CompareExchange 但我不知道如何删除节点 列表中的任何位置 因为我必须获取前一个项目并设
  • 具有日期和名称标准的 SUMIFS...仅限月份和年份

    我正在尝试获取 SUMIFS 公式来检查日期列 并仅对与标准日期的匹配年份和月份相对应的值求和 我还希望此 SUMIFS 包含名称标准和日期 IE 单元格 A1 SUMIFS Sheet1 O O Sheet1 D D Sheet2 DAT
  • 我应该在 Symfony 中哪里放置既不是控制器也不是模型的类?

    对于我的应用程序包 我需要一些既不是控制器也不是模型的类 例如 我想要一个scorecard具有诸如 技能 效率 美丽 等成员的类 此外 它可能具有诸如 meanScore 之类的成员方法 getters 这样的类在 Symfony 框架中
  • 如何在 Ubuntu 上安装 Python 模块

    我刚刚用Python写了一个函数 然后 我想将其做成模块并安装在我的 Ubuntu 11 04 上 这就是我所做的 创建 setup py 和 function py 文件 使用 Python2 7 setup py sdist 构建分发文
  • 如何将 JVM 选项传递给 SBT 以在运行应用程序或测试用例时使用?

    我想在运行我的应用程序或通过 SBT 对应用程序进行测试时指定 JVM 选项 具体来说 我需要能够为 JVM 提供 Djava security policy 参数 以便加载我的策略并用于测试 我怎样才能用 SBT 做到这一点 With x
  • Python 中的六边形自组织映射

    我在寻找六边形 自组织映射 http en wikipedia org wiki Self organizing map在Python上 准备好模块 如果存在的话 绘制六边形单元格的方法 将六边形单元作为数组或其他方式使用的算法 About
  • 什么是 System.ContextBoundObject?

    What is 上下文绑定对象 http msdn microsoft com en us library system contextboundobject aspx用于 该文档提到了 上下文 它似乎是以编程方式定义的 但未能给出任何解释
  • qTip2 jquery 与 asp.net 文本框

    我怎样才能实现jquery插件qTip2http craigsworks com projects qtip2 http craigsworks com projects qtip2 与 asp net 文本框 鼠标悬停时的优雅工具提示
  • App Engine 的 Google Cloud Storage 身份验证

    我们希望开始使用 Google Cloud Storage 作为用户上传文件的持久存储 不幸的是 我无法添加应用程序标识 应用程序 ID appspot gserviceaccount com 到我们的 团队 因为我们的团队基于 Googl
  • 使用 Groovy 从 Jenkins 主节点访问从节点上的文件

    我正在使用 Jenkins Build Flow 插件来实现并行化 Groovy DSL 执行某些文件操作 即使该选项Restrict where this project can be run设置为在特定从属设备上运行作业 DSL 在主控
  • 如何计算正切和副法线?

    谈谈OpenGL着色语言 GLSL 中的凹凸贴图 镜面高光之类的东西 I have 顶点数组 例如 0 2 0 5 0 1 0 2 0 4 0 5 法线数组 例如 0 0 0 0 1 0 0 0 1 0 0 0 世界空间中点光源的位置 例如
  • 使用 Django 的 post_save() 信号

    我有两张桌子 class Advertisement models Model created at models DateTimeField auto now add True author email models EmailField