275得票13回答
在使用信号(signals)时,在单元测试期间出现“TransactionManagementError,只有在‘原子’块结束之前才能执行查询”的错误。

当我试图保存Django User模型实例时,出现了TransactionManagementError,在其post_save信号中,我保存了一些以该用户为外键的模型。 上下文和错误与此问题非常相似:django TransactionManagementError when using ...

116得票5回答
Django信号与覆盖保存方法的区别

我对这个问题感到困惑。目前,我的一些模型看起来有点像这样: def Review(models.Model) ...fields... overall_score = models.FloatField(blank=True) def Score(models.Model) ...

98得票8回答
在Django项目中保存signals.py文件的正确位置

基于我所阅读的Django文档,似乎在应用程序文件夹中的signals.py是一个不错的起点,但我遇到的问题是,当我为pre_save创建信号时,尝试从模型导入类会与模型中的import冲突。# models.py from django.contrib.auth.models import...

95得票5回答
Django post_save() 信号的实现

我有一个关于Django的问题。 我这里有许多对多模型。class Product(models.Model): name = models.CharField(max_length=255) price = models.DecimalField(default=0.0...

92得票11回答
Django - 保存前比较旧字段和新字段的值

我有一个Django模型,需要在保存前比较字段的旧值和新值。 我已经尝试过save()继承和pre_save信号。它们都被正确触发了,但我找不到实际更改的字段列表,也无法比较旧值和新值。是否有方法可以解决?我需要这个来优化pre-save操作。 谢谢!

87得票8回答
在Django的post_save信号中识别已更改的字段

我正在使用Django的post_save信号,在保存模型后执行一些语句。class Mode(models.Model): name = models.CharField(max_length=5) mode = models.BooleanField() from dj...

68得票3回答
Django的级联删除行为有哪些覆盖选项?

Django模型通常可以很好地处理ON DELETE CASCADE行为(以一种适用于不支持它的数据库的方式)。 然而,我正在努力找到在以下情况下覆盖此行为的最佳方法,例如: ON DELETE RESTRICT(即如果具有子记录,则防止删除对象) ON DELETE SET NULL(...

66得票7回答
为什么Django模型信号不起作用?

我正在尝试从用户的状态创建活动流。 模型:class Status(models.Model): body = models.TextField(max_length=200) image = models.ImageField(blank=True, null=True, ...

62得票3回答
Django:如何判断post_save信号是否在新对象上触发?

我需要在Django中对新创建的对象进行一些后台后处理。这个后处理应该只在新对象上运行,而不是只更新的对象。 我知道在pre_save中可以检查对象是否具有id,如果它没有id则是一个新对象。但问题在于,在后处理中我需要访问id(以便我可以将结果保存回数据库)。 有什么干净的方法可以实现这...

58得票4回答
如何防止Django post_save信号代码与Fixture冲突?

在我的应用中,当一个新用户注册时,我想要在特定的表中创建条目。例如,我想要创建一个用户配置文件,它将引用他们的公司和一些其他记录。我使用post_save信号实现了这个功能:def callback_create_profile(sender, **kwargs): # check i...