Python django阻止删除模型实例

Python django阻止删除模型实例,python,django,django-models,Python,Django,Django Models,我有一个models.Model子类,它表示mysql数据库上的一个视图(ie managed=False) 但是,在运行单元测试时,我得到: DatabaseError:(1288,“删除的目标表my_view_表不可更新”) 此删除请求的来源是(间接地)通过外键。我已(简化): 在测试拆卸过程中,我删除了ActualTableModel实例,django似乎遵循了记录的行为: 当Django删除一个对象时,它会模拟DELETE CASCADE上SQL约束的行为——换句话说,任何外键指向要删除

我有一个models.Model子类,它表示mysql数据库上的一个视图(ie managed=False)

但是,在运行单元测试时,我得到:

DatabaseError:(1288,“删除的目标表my_view_表不可更新”)

此删除请求的来源是(间接地)通过外键。我已(简化):

在测试拆卸过程中,我删除了ActualTableModel实例,django似乎遵循了记录的行为:

当Django删除一个对象时,它会模拟DELETE CASCADE上SQL约束的行为——换句话说,任何外键指向要删除的对象的对象都会随之删除

当应用于(managed=False)视图时,这似乎会导致问题

我已尝试覆盖delete方法以防止删除:

class MyViewModel(models.Model):
    ...
    def delete(self, *args, **kwargs):
        pass # deletion of a view row is never valid
但这并没有解决问题


我怎样才能防止这种行为呢?

也许你可以试试以下几种方法之一

即:


谢谢你的文档链接。我试过使用_delete=models.SET_NULL,但忽略了什么都不做。后者修复了错误。
class MyViewModel(models.Model):
    ...
    def delete(self, *args, **kwargs):
        pass # deletion of a view row is never valid
problematic_field = models.ForeignKey(ActualTableModel, on_delete=models.PROTECT)