我有两个模型,一个是普通的 Django 模型,另一个是包装 View 的非托管模型。
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 假设非托管模型是一个表,因此试图删除相关行,并且由于它是一个只读 View ,我的 PostgreSQL 后端会抛出此错误。
有什么办法解决这个问题吗?
我找到了 this bug report概述了问题,但似乎没有一个权宜之计对我有用,并且该错误本身被标记为另一个略有不同但 Unresolved 错误的重复...
最佳答案
你试过了吗on_delete=models.SET_NULL
作为解决方法?
关于python - 如何删除非托管 View 模型引用的 Django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9863355/