Django型号xor&x27;独角兽
我有以下Django模型场景:Django型号xor&x27;独角兽,django,django-models,Django,Django Models,我有以下Django模型场景: class A(models.Model) pass class B(models.Model) a = models.OneToOne(A) class C(models.Model) a = models.OneToOne(A) class D(models.Model) a = models.OneToOne(A) 有没有办法保证任何给定B、C或D对象的一个实例只指向单个a对象?例如,如果有一个B的实例指向A的实例,那
class A(models.Model)
pass
class B(models.Model)
a = models.OneToOne(A)
class C(models.Model)
a = models.OneToOne(A)
class D(models.Model)
a = models.OneToOne(A)
有没有办法保证任何给定B、C或D对象的一个实例只指向单个a对象?例如,如果有一个B的实例指向A的实例,那么其他任何对象都不能指向A的实例。您将需要跳过一些环才能完成此操作
您可以在
B
,C
上创建自定义save
方法,和D
加载您试图从DB指向的A
的实例,并确保不存在其他模型的实例。如果您可以控制模型定义,那么您可能会有一种更干净的方法来实现django的模型继承。