我正在使用 Django 3 和 Python 3.8。我有以下型号...
class Coop(models.Model):
objects = CoopManager()
name = models.CharField(max_length=250, null=False)
types = models.ManyToManyField(CoopType, blank=False)
addresses = models.ManyToManyField(Address)
enabled = models.BooleanField(default=True, null=False)
phone = models.ForeignKey(ContactMethod, on_delete=models.CASCADE, null=True, related_name='contact_phone')
email = models.ForeignKey(ContactMethod, on_delete=models.CASCADE, null=True, related_name='contact_email')
web_site = models.TextField()
注意“电话”和“电子邮件”外键列。一旦它们成为孤儿,是否有任何 Django/Python 特定的方法可以自动删除 ContactMethod 记录?也就是说,如果我有我的模型,其中填充了两列,然后运行
coop.phone = None
coop.save(update_fields=['phone'])
有什么东西会自动删除孤立的记录吗?或者我猜想实现这一目标的标准方法是什么?我正在运行 MySql 8 db,但我更愿意排除特定于 DB 的解决方案。