【发布时间】:2019-11-22 04:40:34
【问题描述】:
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()
报错:
Traceback(最近一次调用最后一次): 文件“/home/puranjay/Documents/FeasOpt/new/fo_ftl_puranjay/mysite/empanelment/views.py”,第 10432 行,在 update_client_type delete_client_type(用户,client_type_id) 文件“/home/puranjay/Documents/FeasOpt/new/fo_ftl_puranjay/mysite/empanelment/views.py”,第 105 行,在 delete_client_type delete_indent_models(用户,客户) 文件“/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()
文件“/home/puranjay/Documents/FeasOpt/env/venv/lib/python3.6/site-packages/django/db/models/query.py”,第 661 行,删除 收集器.collect(del_query)
文件“/home/puranjay/Documents/FeasOpt/env/venv/lib/python3.6/site-packages/django/db/models/deletion.py”,第 222 行,收集 field.remote_field.on_delete(self, field, sub_objs, self.using)
TypeError: 'NoneType' 对象不可调用
【问题讨论】:
-
请发布完整的错误。
-
有什么东西引用你的
VDLCOntract(比如ForeignKey等)? -
顺便说一句,看起来是在
vdl_market_object上给出了错误,而不是上面的查询集.delete()调用... -
看起来好像有东西在保护对象不被删除。可能是一个
ForeignKey指代VDLContract模型。 -
没有@WillemVanOnsem,这里不是这种情况,django 允许您在与父模型没有依赖关系时删除,即使使用了 models.PROTECT。这意味着如果他删除了与父模型相关的所有适当条目,它应该让您删除,错误不是因为任何外键约束。
标签: django django-models foreign-keys