And*_*nko 6 django django-signals django-models cascading-deletes
在我的应用程序中,post_delete信号被记录在特定模型中以及何时被删除。
class A(models.Model):
...
class B(models.Model):
a = models.ForeignKey('A')
class C(models.Model):
b = models.ForeignKey('B')
def log_delete(sender, instance, **kwargs):
logging
post_delete.connect(log_delete, sender = A)
post_delete.connect(log_delete, sender = C)
Run Code Online (Sandbox Code Playgroud)
当您删除 A 级联删除的实例时,会删除 B 和 C 实例。如何禁用 Django 级联删除子实例的信号?
简短回答:
你不能。
长答案:
您需要重写您和您的模型管理器.delete的方法ModelQuerySet
我通过让前/后删除信号传递调用删除的实例来完成一些类似的任务。
这是代码https://gist.github.com/ar45/9c1448a91bcc94997ff0
| 归档时间: |
|
| 查看次数: |
3689 次 |
| 最近记录: |