django - 删除具有外键约束的模型条目的问题
问题描述
class Client(models.Model):
client_id = models.CharField(primary_key=True, max_length=255)
name = models.CharField(max_length=255, blank=False)
class Cont(models.Model):
contid = models.CharField(max_length=255, primary_key=True)
Client = models.ForeignKey(Client, on_delete=models.PROTECT)
class ContractDailyIndent(models.Model):
id = models.CharField(max_length=255, primary_key=True)
cont = models.ForeignKey(Cont, on_delete=models.PROTECT)
class VDLContract(models.Model):
id = models.CharField(max_length=255, primary_key=True)
contractindent = models.ForeignKey(ContractDailyIndent,
on_delete=models.PROTECT)
在此行中出现错误 VDLContract.objects.filter(contractindent__cont__Client__in=clients).delete()
它给出了错误:
回溯(最近一次通话最后):文件“/home/puranjay/Documents/FeasOpt/new/fo_ftl_puranjay/mysite/empanelment/views.py”,第 10432 行,在 update_client_type delete_client_type(user, client_type_id) 文件“/home/puranjay/ Documents/FeasOpt/new/fo_ftl_puranjay/mysite/empanelment/views.py”,第 105 行,在 delete_client_type delete_indent_models(user, clients) 文件“/home/puranjay/Documents/FeasOpt/new/fo_ftl_puranjay/mysite/empanelment/utility.py ",第 962 行,在 delete_indent_models 中提出 e 文件 "/home/puranjay/Documents/FeasOpt/new/fo_ftl_puranjay/mysite/empanelment/utility.py",第 941 行,在 delete_indent_models VDLContract.objects.filter(contractindent__cont__Client__in=clients).delete ()
删除collector.collect(del_query)中的文件“/home/puranjay/Documents/FeasOpt/env/venv/lib/python3.6/site-packages/django/db/models/query.py”,第661行
文件“/home/puranjay/Documents/FeasOpt/env/venv/lib/python3.6/site-packages/django/db/models/deletion.py”,第 222 行,在收集字段中。 , sub_objs, self.using)
TypeError:“NoneType”对象不可调用
解决方案
我尝试在我的本地机器上实现您的问题。由于外键约束,Django 会导致此错误。当您的外键依赖于其他模型时会发生这种情况,在您的情况下,VDLContract 可能依赖于需要首先删除的其他模型。
推荐阅读
- wpf - WPF 文本框绑定。VB.Net 2017
- pandas - 如何对熊猫时间戳系列进行箱线图?(时间戳类型的错误)
- c# - 在 Azure Functions 中找不到类型或命名空间名称
- facebook - Expo Facebook登录-产生无效令牌
- python - 从用户输入创建和存储一组类对象
- java - Redis hmget 的超时时间
- javascript - Javascript 模块,如何在开发构建中添加额外的内容?
- java - Java没有继续循环
- html - 如何在此 Html 页面中将行内联?
- javascript - 如何在嵌套在 ul li 中的锚标记中添加活动类