问题标签 [django-signals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1009 浏览

django - 在中间模型上使用 clear 时,Django pre_delete 和 post_delete 信号不同步

我有 3 个模型

每当关系发生变化时,我都会使用 django 信号进行一些计算。由于指定了明确的中间模型,因此我不能使用 m2m_changed 进行删除。所以我使用的是pre_delete。一切都很好,除非在关系的任何一方调用 clear() 。调用 clear() 是在中间模型上调用 delete,即触发 pre_delete 和 post_delete。我尝试检查删除的顺序,它会先触发所有 pre_deletes,然后触发所有 post_deletes。

例如。如果存在 C (c1, c2, c3) 的实例,这些实例将作为 clear() 的结果被删除。顺序是——

在 c2 的 pre_delete 期间,c1 仍然存在;它搞砸了计算。我没有使用 m2m_changed pre_clear/post_clear,因为我想挂钩 C 的单个删除,这也将在 clear() 上调用。这里有什么建议吗?Django 信号文档也不是很解释。

0 投票
3 回答
202 浏览

python - Django 1.3,如何在 ebay 上的帖子结束时发出信号?

我很困惑,不知道该怎么做,所以如果我的描述/信息不好,请原谅我。

所以我想说通过 django-notification 发出通知,或者当我的一个用户的帖子像在 ebay 上一样结束时简单地向他发送一封电子邮件。在我的数据库中,我有一个模型,它存储帖子结束的日期时间,但我不确定如何有效地检查或存储信号或提醒系统在当前时间提醒用户的东西> 比结束日期时间。

谢谢!

由于我想在帖子结束的第二个发送电子邮件/通知,我认为我不能使用调度程序来检查是否有任何帖子已经结束,我相信这效率太低了,因为我必须每隔一秒检查一次,但就像我上面所说的,我不确定任何事情......

0 投票
8 回答
35761 浏览

django - 将我的 signals.py 文件保存在 Django 项目中的正确位置

根据我正在阅读的 Django 文档,似乎signals.py在 app 文件夹中是一个不错的起点,但我面临的问题是,当我创建信号pre_save并尝试从模型中导入类时,它与import在我的模型中。


这段代码不会运行,因为我Comm_Queue在里面导入signals.py,我也在里面导入信号models.py

谁能建议我如何解决这个问题?

问候

0 投票
2 回答
37389 浏览

django - django post_save 更新信号

我正在尝试设置一些类似于以下内容的 post_save 接收器

在更新 Game 对象后,第一个接收器被正确调用,但是对 MyPick 对象的更新调用不会导致调用第二个接收器。post_save 信号在更新时不起作用还是我在这里遗漏了其他东西?

谢谢

0 投票
1 回答
40 浏览

django - 发现哪个管理员在 Django 中执行了一个操作

我正在尝试建立一个系统,每次在管理控制台中发生某些事情(例如,保存用户)时,都会通知一组人。我连接了 post_save,它工作正常。我可以从传递给回调函数的实例中检索我需要的大部分数据(保存了哪些用户和哪些字段)。但是,要求中有一件事,我不知道该怎么做,那就是显示哪个特定管理员进行了更改。关于如何做到这一点的任何想法?

谢谢你,卢卡

0 投票
9 回答
10859 浏览

python - 如何使用带有信号的 Django 模型继承?

我在 Django 中有几个模型继承级别:

WorkAttachmentFileBased从和继承了许多不同的模型WorkAttachment。我想创建一个信号,它会attachment_count在创建附件时更新父工作的字段。认为为父发送者 ( WorkAttachment) 发出的信号也适用于所有继承的模型是合乎逻辑的,但事实并非如此。这是我的代码:

有没有办法让这个信号适用于所有继承自的模型WorkAttachment

Python 2.7、Django 1.4 pre-alpha

PS 我已经尝试了我在网上找到的一种解决方案,但它对我不起作用。

0 投票
1 回答
300 浏览

django - Django初始化代码?

我有一些初始化代码,我希望 Django 在创建站点时运行一次。

将此代码挂接到同步数据库信号中是否合适?如果是这样,这个信号会去哪里?但是如果我多次同步数据库,不会认为多次运行代码吗?

0 投票
1 回答
42 浏览

django - Django runonce-per-db flag?

What is the Django "runonce-per-db" flag?

I see it mentioned in this thread, but cannot find any documentation for it.

0 投票
2 回答
386 浏览

django - Django 中的信号

我在不同的应用程序目录中有 2 个models.py 文件:users.models.py 和friends.models.py。

有一个问题:如果某个用户从 UserProfile 模型中删除,他的所有友谊网络也必须与他一起删除。这是很自然的。

但是当我将 Friendship 导入 users.model.py 时出现错误:Cannot import name Friendship

我了解由于在这两个文件中相互导入而出现错误,并且我知道我可以借助信号轻松解决此问题,但我不知道如何以正确的方式解决。

有人可以在这种特殊情况下提供帮助吗?

在 users.models.py 中:

在friends.models.py中:

提前致谢!!!

0 投票
2 回答
1904 浏览

django - 保存后,模型ID不存在

我有多个与单个模型相关的模型。在保存这些模型时,我覆盖了 save 以检索主模型的 id,以便将文件放在 OS 上由主模型的 pk 键入的目录中。

例如,以具有许多房间的建筑物为例。房间的任何图像都将保存在由建筑物 ID 键入的目录中(房间没有子目录)。

只要保存房间时建筑物存在,我的覆盖保存方法就可以正常工作。但是,如果尚未保存建筑物,并且我正在通过 django 管理员向建筑物添加房间,则图像仍保留在上传目录中,因为该建筑物的 pk 尚不存在。

我最初尝试覆盖建筑物的保存并将任何房间图像移动到新创建的建筑物目录(再次关闭建筑物的 pk)。尽管 super(Building, self).save(*args, **kwargs) 首先没有设置 Building 的 id。

然后我决定 post_save 信号可能更干净,并且这样做了。不幸的是,该 id 似乎也不存在于帖子保存中。我可以尝试打印 ID 并在触发后保存时看不到任何值,直到我第二次保存模型。

有人可以向我指出一个方向,可以解释为什么 id 没有像其他 SO 答案中所接受的预期输出那样设置吗?

谢谢。

编辑:

这是评论中要求的一些代码。因为我简化了最初的问题,所以我在这里包含更多内容。这里有 3 个级别,一个带有房间的建筑物列表。该清单是我尝试通过该print kwargs['instance']行简单打印的内容。在底部,我包含了两次背靠背保存后的输出。请注意在第一次保存后完全没有实例存在。这些实际上是背靠背的,中间没有任何动作。对 Building_Room 之类的东西的引用是通过表来实现的。除了数据字段之外,RoomImage、BuildingImage 和 ListingImage 都是相似的,因此我只包括了一个。

一些输出: