django-signals相关内容

来自管理员的 Django 信号

例如,如何区分来自常规视图的 post_save 和来自管理员的 post_save? 解决方案 通过覆盖 ModelAdmin.response_add 您可能会获得类似的功能,因为 django 管理员似乎没有发送任何信号. response_add 函数在成功验证并添加所有数据(例如相关字段以及对象本身)后被调用. 因此,通过在我们自己的 ModelAdmin 类中覆盖 ..
发布时间:2022-01-25 11:44:58 其他开发

Django:在 Django Admin 中具有唯一外键的 UserProfile

我使用名为 UserExtension 的自定义用户配置文件扩展了 Django 的用户模型.它通过唯一的 ForeignKey 关系与 User 相关联,这使我能够在管理员中以内联形式对其进行编辑!我正在使用信号为每个新用户创建一个新的配置文件: def create_user_profile(sender, instance, created, **kwargs):如果创建:尝试:profi ..
发布时间:2022-01-20 12:22:18 其他开发

django 信号是否也包含在 transaction.atomic 装饰器中?

我有一个模型文件,它使用 post_save 信号在另一个表中创建链接行.以典型的方式,我可以从我的一个视图中创建一个页面,该页面用 @transaction.atomic 装饰. 我想知道这个装饰器是否会将 Page 对象和 SharedPage 对象的创建放在同一个事务中.从 Django 文档中并不清楚信号是这个原子事务的一部分. models.py class Page(mo ..
发布时间:2022-01-06 21:07:21 Python

什么时候在 Django 中使用 pre_save、save、post_save?

我看到我可以覆盖或定义 pre_save, save, post_save 以在保存模型实例时执行我想要的操作. 在哪种情况下更喜欢哪个,为什么? 解决方案 我会尽量用一个例子来解释: pre_save 和post_save 是 信号 由模型发送.简而言之,在调用模型的 save 之前或之后要执行的操作. A save 触发以下步骤 发出预存信号. 预处理数据. ..
发布时间:2021-12-19 11:47:36 Python

如何让 Django 信号调用模型方法?

也许现在已经晚了,但我不知道为什么这不起作用.当我有 post_save 信号调用通用函数时,它可以工作,但是当我有 post_save 信号从模型调用方法时,没有任何反应.这是有效的代码: class Revision(models.Model):# 模型垃圾...def send_email(sender, instance, created, **kwargs):如果创建:打印“做事"信号 ..
发布时间:2021-12-19 11:42:28 Python

Django 多条信号?

假设我有这样的模型 class Event(models.Model)users_count = models.IntegerField(默认= 0)用户 = 模型.ManyToManyField(用户) 如果事件添加/删除一些用户,您建议如何更新 users_count 值? 解决方案 如果可能的话,你可以引入 Participation 模型来加入事件和用户: class Par ..
发布时间:2021-12-19 11:38:18 Python

Django 信号与覆盖保存方法

我无法理解这个问题.现在我有一些看起来像这样的模型: def Review(models.Model)...领域...total_score = models.FloatField(blank=True)定义分数(模型.模型)评论=models.ForeignKey(评论)问题 = 模型.TextField()等级 = 模型.IntegerField() A Review 有几个“分数",o ..
发布时间:2021-12-02 19:13:01 Python

保存后不立即更新多对多关系的问题

我遇到了未更新的多对多关系问题在我保存模型时(通过管理员)并尝试在一个模型中使用新值附加到 post_save 信号或在 save_model 中的函数关联的 AdminModel.我试图通过使用在这些函数中重新加载对象获取带有 id 的函数......但它仍然具有旧值. 这是交易问题吗?是否有信号抛出时交易结束? 谢谢, 解决方案 当您通过管理表单保存模型时,它不是原子事务. ..
发布时间:2021-12-02 19:09:12 其他开发

仅在事务完成后触发 post_save 信号

我已经编写了一些 API,它们各自的功能在事务块中执行.我在一个/几个模型/s的实例/s上调用save()方法(经过一些修改),并在Elasticsearch中连续索引实例/s的一些JSON相关信息.我希望数据库回滚,即使出于某种原因,其中一个实例的 save() 或索引到 Elasticsearch 失败. 现在,问题出现了,即使在事务块内部,post_save() 信号也会被调用,这是一 ..
发布时间:2021-11-15 01:06:24 其他开发

带后保存信号的Django Assign-perm

我有一个名为 archive 的Django模型,该模型通过外键绑定到 group (django auth).为了使用户能够编辑此归档文件中的内容,他们必须具有通过 django-guardian 进行编辑的权限.我可以将归档文件与一个组链接,如下面的代码所示,但是,我还需要能够为每个组设置按对象(归档)权限.我正在尝试使用 post_save 或 post_delete 信号执行此操作(以正确 ..
发布时间:2021-05-01 20:44:07 Python