您需要使用GenericForeignKey
,它允許您與任何類型的模型建立關係。
翻譯你需要會導致這個什麼:
class FacilityProperty(models.Model):
facility = models.ForeignKey(facility, on_delete=CASCADE)
content_type = models.ForeignKey(ContentType, on_delete=models.CASCADE)
linking_id = models.PositiveIntegerField()
link_object = GenericForeignKey('content_type', 'linking_id')
的link_object
將指向無論是Hotel
或Room
,這取決於你如何使用的關係。
下面是一個例子:
h = Hotel.objects.create()
r = Room.objects.create()
f = Facility.objects.create()
prop = FacilityProperty(link_object=h, facility=f)
prop.save()
prop = FacilityProperty(link_object=r, facility=f)
prop.save()