如何删除被未管理视图模型引用的Django模型

4

我有两个模型,一个是普通的Django模型,另一个是封装视图的未管理模型。

class A(models.Model):
    name = models.CharField(max_length=255)

class B(models.Model):
    a = models.ForeignKey(A)

    class Meta:
        managed = False
        db_table = 'myview'

除了我尝试从A中删除一行时会出现错误,其他都运行良好,错误信息如下:

django.db.utils.DatabaseError: cannot delete from view "myview"
HINT:  You need an unconditional ON DELETE DO INSTEAD rule or an INSTEAD OF DELETE trigger.

显然,Django假定未受管理的模型是一个表,因此试图删除相关行,由于这是只读视图,我的PostgreSQL后端会抛出此错误。

有没有什么方法可以解决这个问题?

我发现这个bug报告概述了这个问题,但是其中的临时解决方案似乎都不适用于我,并且该bug本身被标记为另一个稍微不同但未解决的bug的副本...

1个回答

4

4
这是一个只读视图,所以我不能将任何东西设置为null,但是models.DO_NOTHING起作用了。谢谢。 - Cerin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接