24得票1回答
Django信号也包含在transaction.atomic装饰器中吗?

我有一个模型文件,使用post_save信号在另一张表中创建关联行。通常情况下,我可以从我的视图之一创建页面,该视图装饰了@transaction.atomic。 我想知道这个装饰器是否会将Page对象和SharedPage对象的创建放在同一个事务中。从Django文档中并不清楚信号是否是原...

24得票2回答
为什么Django的信号处理默认使用弱引用作为回调函数?

Django文档在这个问题上有如下说明: 需要注意的是,Django默认将信号处理函数存储为弱引用,因此如果您的处理函数是一个本地函数,它可能会被垃圾回收。为了防止这种情况发生,请在调用信号的connect()方法时传递weak=False参数。 我没有找到任何关于为什么默认使用弱...

24得票2回答
Django:在没有访问请求对象的情况下获取绝对URL

我有一个如下的模型。当创建一个实例时,我希望能够向一个感兴趣的人发送电子邮件:class TrainStop(models.Model): name = models.CharField(max_length=32) notify_email = models.EmailFie...

23得票3回答
post_save信号没有被调用

我已经阅读了所有相关的问题。我有两个Django项目,在其中一个项目中,信号正常工作,但在第二个项目中不起作用(我只是复制粘贴了代码并相应地更改了名称)。我有一个包含Order模型的订单应用程序。该应用程序已包含在INSTALLED_APPS设置中。我在apps.py中有应用程序配置:from...

22得票4回答
如何在Django“完全加载”后运行任意代码

在我的Django环境被“完全加载”后,我需要执行一些相当简单的任务。 更具体地说,我需要做的事情包括:Signal.disconnect() 一些由第三方库默认设置的Django信号,connect 我自己的信号,并进行一些"猴子补丁",以向另一个库中的一些Django模型添加方便函数。 ...

22得票1回答
我应该如何让Django的信号调用一个模型方法?

也许是太晚了,但我想不出为什么这不起作用。当我有一个post_save信号调用一个通用函数时,它可以工作,但是当我有一个post_save信号调用一个模型的方法时,什么也没有发生。以下是能够工作的代码:class Revision(models.Model): # Model junk...

21得票1回答
在celery中处理`post_save`信号

我有一个需要在插入或更新特定模型后执行的长时间运行的任务。 我决定使用post_save信号而不是重写save方法来减少耦合。由于Django信号不是异步的,所以我不得不将长时间运行的任务作为Celery任务(我们已经在堆栈中拥有)来执行。 我的信号处理函数的简化版本如下:@receive...

18得票4回答
在Django管理界面中编辑实际对象之前,请保存相关对象。

在 Django 管理后台的表单中,是否可以在编辑实际对象之前保存相关对象? 例如: 在 models.py 中:class Parent(model.Model): pass class Child(model.Model): parent = models.Forei...

17得票2回答
Django - 我何时应该使用信号(signal),何时应该重写(save)保存方法?

就我个人而言,我喜欢使用信号:from django.db import models from django.db.models.signals import pre_save class MyModel(models.Model): ... def custom_action...

17得票2回答
Django信号只发出一次,为什么会接收两次?--为什么?

我正在使用Django信号,但即使只发出一次信号,它们似乎会被接收两次。下面是我正在使用的代码(这是一个简单的包装器,用于在Django中使用Uploadify)...# Signal-emitting code... emits whenever a file upload is recei...