[英]deleting model when foreignkey is deleted in django
So, I have a model something like this所以,我有一个像这样的模型
class Blog(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
posted_by = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
def delete(self, *args, **kwargs):
# to do before delete
super().delete(*args, **kwargs)
I want to delete all Blog objects related to User when the User is deleted.当用户被删除时,我想删除与用户相关的所有博客对象。 It is working but its deleting object without calling overridden delete function.
它正在工作,但它的删除对象没有调用覆盖的删除函数。 I want to delete the model through the overridden delete function coz i have something to do before actually deleting the object.
我想通过覆盖的删除函数删除模型,因为在实际删除对象之前我有一些事情要做。 If it is not possible, do suggest any other way to do it.
如果不可能,请建议任何其他方法来做到这一点。
It should still be possible with pre_delete
signal:使用
pre_delete
信号应该仍然可以:
@receiver(pre_delete, sender=Blog)
def my_pre_delete_process_for_blog(sender, instance, **kwargs):
...
Note that the delete() method for an object is not necessarily called when deleting objects in bulk using a QuerySet or as a result of a cascading delete.
请注意,当使用 QuerySet 批量删除对象或作为级联删除的结果时,不一定会调用对象的 delete() 方法。 To ensure customized delete logic gets executed, you can use pre_delete and/or post_delete signals.
为确保执行自定义删除逻辑,您可以使用 pre_delete 和/或 post_delete 信号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.