python - 如何删除非托管 View 模型引用的 Django 模型

标签 python django django-models django-orm

我有两个模型,一个是普通的 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/

相关文章:

python - 重新分配字典值

Django/PIL - 上传图像时立即保存缩略图版本

django - 如何在 Django 中创建自定义 ID?

使用 Postgres BDR 9.4.1 迁移 Django 1.8

django - TypeError at/registration __init__() 得到了一个意外的关键字参数 'null'

python 细节 : Array value must start with "{" or dimension information

python - 更新实例时的Django Form字段初始值

python - 聚类一组图像

java - 优化谷歌 Protocol Buffer

python - 如何在 tkinter 上用鼠标创建一条直线?