在Django中,我有以下models.py如何創建「知道」它是什麼類別的django數據庫模型?
class Product(RandomPrimaryIdModel):
title = models.CharField(max_length=20, blank=True, null=True)
price = models.CharField(max_length=20, blank=True, null=True)
condition = models.CharField(max_length=20, blank=True, null=True)
class Mattress(Product):
length = models.CharField(max_length=50)
size = models.CharField(max_length=5)
class Pillow(Product):
shape= models.CharField(max_length=50)
comfort= models.CharField(max_length=5)
的想法是,有一個「產品」模型和幾個「產品類型」的車型。我正在嘗試創建一個與兩者相關的數據庫方案。最終目標是,當我允許訪問product_type未知的對象的主ID時,我可以簡單地查詢/過濾該對象以查明product_type與對象的關係。
我知道這聽起來有點混亂,但我該如何去實現正確的方式?目前的方案(上面的方案)不是我相信的正確解決方案。
最好不要對'CharField'使用'null = True',ref [doc](https://docs.djangoproject.com/en/1.4/ref/models/fields/):「避免使用null on基於字符串的字段,如CharField和TextField,除非你有一個很好的理由......「 – okm 2012-08-10 06:05:04
一旦你有產品類型,你會做什麼?將這種行爲作爲產品類型的方法來實施會不會更好?因此,例如,「牀墊」的「描述」方法將使用其長度和尺寸,而枕頭的使用方式則使用其形狀和舒適度。然後代碼不會關心它是什麼類型的對象,它只會得到它的描述。在面向對象的框架中,通常顯式地測試類是一個紅旗。 – Spacedman 2012-08-10 08:32:35