- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看到 post_delete
在实例实际从数据库中删除之前在模型上触发,这与 https://docs.djangoproject.com/en/1.6/ref/signals/#post-delete 相反
Note that the object will no longer be in the database, so be very careful what you do with this instance.
如果我查看数据库,记录仍然存在,如果我使用ORM重新查询,则返回记录,相当于实例:
>>> instance.__class__.objects.get(pk=instance.pk) == instance
True
我没有太多相关代码可以展示,我的信号看起来像这样:
from django.db.models.signals import post_delete, post_save
@receiver(post_delete, sender=UserInvite)
def invite_delete_action(sender, instance, **kwargs):
raise Exception(instance.__class__.objects.get(pk=instance.pk) == instance)
关于我应该从哪里开始调试这到底是怎么发生的,有什么想法吗?有没有人知道这是一个已知的错误,我找不到任何描述此类行为的票证——而且我确信这在我的应用程序的其他各个地方都按预期工作,这些地方似乎没有受到影响。
如果我允许执行继续,实例最终会被删除...所以它不像存在,因为它无法删除它(很确定 post_delete 在这种情况下无论如何都不应该触发)。
最佳答案
我相信我所看到的是因为 Django 的默认事务行为,在请求完成之前不会提交更改。
我真的没有解决方案——我看不出有什么方法可以查询事务完成后实例或记录的状态(甚至没有办法让事务可见),也没有任何方法在不显着改变应用程序运行方式的情况下防止这种行为的简单方法。
我现在选择忽略这个问题,而不是担心我的用例中的影响,事实上,这并没有那么严重——我确实欢迎关于如何正确处理这个问题的任何和所有建议。
我在我的 post_delete 中触发了一个更通用的事件日志信号,并且在监听器中我需要能够检查实例是否正在被删除——否则它会绑定(bind)一个错误的 GenericRelation 引用一个不存在的 pk,如果我看到关系被删除,我打算做的是取消它——但正如所描述的,我现在不能说,除非我在 post_delete 中触发信号时传递一个额外的参数。
关于python - post_delete 如何在 Django 中删除之前触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30074733/
我有一个模型“评论”和一个在评论被删除时采取行动的信号。该信号在管理中删除评论时执行,但通过 django-rest-framework 删除时不执行。 @receiver(post_delete,
在我的申请中 post_delete信号被记录在特定模型中以及何时被移除。 class A(models.Model): ... class B(models.Model): a =
我看到 post_delete 在实例实际从数据库中删除之前在模型上触发,这与 https://docs.djangoproject.com/en/1.6/ref/signals/#post-dele
我有一个带有FileField的模型: class FileModel(models.Model): name = models.CharField(max_length=100) d
我有以下模型: class A(): foriegn_id1 = models.CharField # ref to a database not managed by django for
我正在使用信号在对象被删除后执行操作;但是,有时我想根据参数执行不同 操作(不是默认操作)。 有没有办法将参数传递给我的信号捕捉器?或者我是否必须放弃信号,而是硬编码我想在模型中执行的操作? 我想做的
我有一个模型 - 产品,其中包含一个缩略图。我有另一个模型,其中包含与产品关联的图像 - ProductImage。 我想在删除产品实例时从服务器中删除缩略图和图像,有一段时间这似乎有效,但不再有效。
我想跟踪数据库条目的数量。我不想使用(就我而言)Book.objects.all().count()。我知道它工作得很快,但我不认为这是一个好方法。我已经实现了 Tracker 类,如果需要数字,我将
我有一个自定义函数,在删除模型订单的对象时会调用该函数,我使用 post_delete 来实现此目的。 模型“Orders”的实例始终具有外键“user”。当删除模型“Orders”的对象时,我想检查
我是一名优秀的程序员,十分优秀!