【问题标题】:Django delete an object from within one of its own methodsDjango 从它自己的方法之一中删除一个对象
【发布时间】:2015-08-31 07:30:08
【问题描述】:

我有一个模型:

class MyModel(models.Model):
    parent_content_type = models.ForeignKey(ContentType, related_name='prereq_parent')
    parent_object_id = models.PositiveIntegerField()
    parent_object = GenericForeignKey("parent_content_type", "parent_object_id")

    ...

    def get_parent(self):
       try:
           return self.parent_content_type.get_object_for_this_type(pk=self.parent_object_id)
       except ObjectDoesNotExist:
           #do something that will result in this instance of MyModel to be deleted

如果外键被删除,它会中断,所以当需要的外键被删除时,我不会中断,而是捕获它。发生这种情况时,如何删除整个 MyModel 实例,然后继续。

【问题讨论】:

标签: python django generic-foreign-key


【解决方案1】:

在您删除外语类之前:

foreign = ForeignClass.objects.get(pk=id)
myModel = MyModel.objects.filter(content_object=foreign)
myModel.delete()
foreign.delete()

希望这对你有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多