擅长:python、mysql、java
<p>对于那些引用这些具有相同问题且具有<code>ForeignKey</code>关系的问题的人,正确的答案是在<code>ForeignKey</code>关系上使用Djago的<code>on_delete=models.PROTECT</code>字段。这将阻止删除任何具有外键链接的对象。这不适用于<code>ManyToManyField</code>关系(如<a href="https://stackoverflow.com/questions/3937194/django-cascade-deletion-in-manytomanyrelation">this</a>问题中所讨论的),但适用于<code>ForeignKey</code>字段。</p>
<p>所以如果模型是这样的,这将防止删除
任何具有一个或多个与其关联的<code>Project</code>对象的<code>Employee</code>对象:</p>
<pre><code>class Employee(models.Model):
name = models.CharField(name, unique=True)
class Project(models.Model):
name = models.CharField(name, unique=True)
employees = models.ForeignKey(Employee, on_delete=models.PROTECT)
</code></pre>
<p>文档可以找到<a href="https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.on_delete" rel="nofollow noreferrer">HERE</a>。</p>