0

私はモデルを持っています:

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 のこのインスタンス全体を削除して続行するにはどうすればよいでしょうか。

4

1 に答える 1

0

外部クラスを削除する前に:

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

これがうまくいくことを願っています。

于 2015-08-31T07:49:28.013 に答える