我的代码中有这些模型
class Address(models.Model):
street = models.CharField(max_length=50)
city = models.CharField(max_length=10)
class User(models.Model):
name = models.CharField(max_length=20)
age = models.IntegerField()
address = models.OneToOneField(Address, on_delete=models.CASCADE)
我了解models.CASCADE
Django 的工作原理。如果我删除一条Address
记录,相应的User
记录就会被删除,但这不是我想要的。Address
如果记录被删除,我希望User
记录被删除。
我知道我可以通过放入OneToOneField
而Address
不是来实现这一点User
,但是从数据库模式的角度来看,这对我来说没有意义,因为 aUser
有一个Address
. 一个Address
没有User
。
我尝试搜索如何强制删除以相反的方式进行,但显然 Django 拥有的所有选项都不可能(https://docs.djangoproject.com/en/3.1/ref/models/fields/# django.db.models.ForeignKey.on_delete)。
有人知道替代方案吗?或者以其他方式构建数据库模式的正确方法?
谢谢!