子模型更新 Django 外键关系中的父模型

2024-01-06

假设以下模型架构,

父模型:

class Batch(models.Model):
    start = models.DateTimeField()
    end = models.DateTimeField()

许多儿童模型之一:

class Data(models.Model):
    batch = models.ForeignKey(Batch, on_delete=models.ON_CASCADE)
    timestamp = models.DateTimeField()

我的目标如下:拥有一个父模型的起始字段,当修改任何子模型时,该起始字段始终会更新。 基本上,如果新数据实例的时间戳早于开始字段,我希望将开始字段更新为该实例时间戳值。在删除最旧时间参考点的数据实例的情况下,我希望将批处理开始字段更新为第二旧的。端场反之亦然。


执行此操作的可能方法之一是添加相关模型的后或预保存信号,并据此更新必要的字段。 Django 信号官方文档,link https://docs.djangoproject.com/en/2.1/topics/signals/。我想添加另一个link https://simpleisbetterthancomplex.com/tutorial/2016/07/28/how-to-create-django-signals.html,我见过的关于 django 信号的最好的博客文章之一。

编辑安德烈·格拉的回应

进行 get 调用并引入 Batch 实例的最简单方法之一。我想说的话

@receiver(post_save,sender=Data)
def on_batch_child_saving(sender,instance,**kwargs):
    batch_instance = Batch.objects.get(pk=instance.batch)
    if (instance.timestamp < batch_instance.start): 
        batch_instance.start = instance.timestamp
        batch_instance.save()

    elif (instance.timestamp > batch_instance.end):
        batch_instance.end = instance.timestamp
        batch_instance.save()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

子模型更新 Django 外键关系中的父模型 的相关文章

随机推荐

  • Ehcache复制缓存启动时不同步

    我有一个跨两台机器复制的 ehcache 缓存 一旦两个对等点启动 对等点就会正确地找到彼此并进行复制 但是 如果第一个对等点首先启动并接收多个元素 然后第二个对等点稍后启动 第二个对等点永远不会看到在它尚未存在时添加的元素 具体顺序如下
  • 如何确认 TrueType PDF 字体缺少字形

    我有一个 PDF 它在 Acrobat 中渲染良好 但在打印机 RIP 上的 PDF 到 PS 转换过程中无法打印 用 pdftk 解压缩并编辑后 我发现如果我替换某种字体的使用 它将打印 该字体是一种奇怪的字体 是带有单个字符 空格 的
  • 正则表达式 - 从给定字符串中提取子字符串

    我这里有一根绳子 This is a string AAA123456789 所以这里的想法是提取字符串AAA123456789使用正则表达式 我正在将其与 X Path 合并 注 如果有相关帖子 请引导我查看 我认为 按理说 我应该sub
  • 如果我的套接字已连接且未关闭,为什么我要发送 RST?

    我有一个 Android 设备 它使用 java net Socket 与 PC 进行无线通信 一切都很好 但如果我在 1 分钟内什么都不做 即没有使用网络 那么当 Android 向 PC 发送数据包时 PC 会收到它并发送 ACK 但
  • IE11 是否有“Backface-visibility:hidden”替代方案?

    我正在尝试让卡片在 IE11 中看起来像在 Google Chrome 中一样 所以我正在寻找 翻转时正面图像不会显示在背面 翻转卡片背面后 背面的文字可见 但正面看不到 它在 IE 中也不起作用 该卡可在 Google Chrome 中使
  • 以编程方式使用自动布局约束

    我正在尝试以编程方式在我的 iOS 应用程序中使用自动布局 我有一个带有此初始化代码的简单视图控制器 UIView innerView UIView alloc initWithFrame self view bounds UIButton
  • 如何通过通话听筒扬声器播放AVSpeechSynthesizer?

    我喜欢通过呼叫接收器扬声器播放音频 目前我正在使用它来播放一些文本作为音频 AVSpeechUtterance utterance AVSpeechUtterance speechUtteranceWithString strTextChe
  • Android L SoundPool.load() 回归

    在 Android L 最新的开发者预览版 Nexus 5 上 SoundPool load 方法似乎存在回归 需要 gt 5 秒才能加载样本 我尝试了 OGG 或 MP3 结果相同 尝试了不同的大小 但都在 100kb 以下 看来40kb
  • 如何在既没有 CORS 也没有 JSONP 的来源的网页上使用 JSON? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无法跟踪实体类型 Model 的实例,因为已跟踪具有相同 {'Id'} 键值的另一个实例

    我有一个问题 我什么时候会更新我的数据库 我有这个异常 无法跟踪实体类型 ExpenseReport 的实例 因为 另一个具有相同键值 Id 的实例已被使用 被跟踪 附加现有实体时 确保只有一个实体 附加具有给定键值的实例 考虑使用 DbC
  • mysql中STR_TO_DATE解析

    我正在尝试解析 06 01 2010 15 00 00 08 00 问题是最后一个偏移小时 mysqlstr to date无法解析它 有什么想法吗 您需要使用CONVERT TZ函数 http dev mysql com doc refm
  • 未解决的参考:Kotlin 中的 BuildConfig

    所以我开始了一个新的android应用程序 这是我的 Android Studio 信息 Android Studio 3 6 1 Build AI 192 7142 36 36 6241897 built on February 27 2
  • WPF 加载微调器

    目标是显示应用程序正在运行的信息 因此 我正在寻找使用 WPF MVVM 的加载旋转器的智能实现示例 一个非常简单的 即插即用 旋转器可能是来自Font Awesome Wpf 包 https github com charri Font
  • 使用putExtra()向Activity传输大量数据;

    应用程序传递大量对象 解析后大约150个对象 JSON格式 通过intent putExtra 其中有serialized对象 而打开一个新的activity的过程大约需要2秒 有没有办法加快这个过程 如果您只想将数据从一个活动传递到另一个
  • R/dplyr:如何在数据框中仅保留整数?

    我有一个包含多年的数据框 数据类型chr Years 5 yrs 10 yrs 20 yrs 4 yrs 我只想保留整数来获取像这样的数据框 数据类型num Years 5 10 20 4 我如何在 R 中执行此操作 您需要提取数字并将它们
  • 在调试 Java 代码时,@ 在 {Instance@789} 或 "SomeThread"@321: RUNNING 等语句中意味着什么? [复制]

    这个问题在这里已经有答案了 The seems to be everywhere when I debug They are always preceded by some instance variable name and follow
  • 从列名称中删除部分字符串[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 那是一个数据 structure list Fasta headers c Person01050 1 Person01
  • Win32 上的 LAPACK

    我一直在探索需要对矩阵进行一些处理的算法 并且我已经在我的 Linux 机器上获得了一些简单的代码 以下是摘录 extern C link w LAPACK extern void dpptrf const char uplo const
  • c中回调注册函数中的userdata有什么用?

    在注册回调函数中有两个参数 一是函数指针 二是userdata int callback register fn ptr cb void userdata fn ptr is typedef 回调期间相同userdata作为参数发回 我了解
  • 子模型更新 Django 外键关系中的父模型

    假设以下模型架构 父模型 class Batch models Model start models DateTimeField end models DateTimeField 许多儿童模型之一 class Data models Mod