我有一個網上商店。有單件物品可以購買,但也有一些包含一些單件物品。 現在我正試圖找到這些關係的最佳/有用的解決方案。這是迄今爲止我所擁有的。Django:三款相互關聯,最好的方式是什麼
型號:
class Wine(models.Model):
name = models.CharField(max_length=128)
class WineBox(models.Model):
name = models.CharField(max_length=128)
wines = models.ManyToManyField(Wine)
class Product(models.Model):
wine = models.OneToOneField(Wine, blank=True, null=True)
winebox = models.OneToOneField(WineBox, blank=True, null=True)
price = models.DecimalField(max_digits=4, decimal_places=2)
public = models.BooleanField(blank=True)
好點!我的第一個想法是向WineBox添加更多信息,例如包裝鏡頭或不同的標題。 (對不起,我在我的問題中沒有這麼具體)。但是也許值得將它添加到產品類中,而不是增加一個模型。 – horndash
@horndash我最好的建議是保持你的數據模型簡單,不要過度設計。乾杯! – Cartucho
我會研究這個問題的一般關係:假設您想要有多種類型的產品,目前'Product'只能將'Wine's作爲「內容」。看看這個:https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#id1 –