2017-08-07 63 views
0

我正在開發一個在線購物車項目,並且在產品目錄應用程序中,我有點無法理解如何構造類別,例如,以下序列:MEN->鞋類 - >運動鞋 - >某品牌(耐克) - >實際產品。正如你所看到的深度是5這是一個好的設計,使子子子...類別每個級別如何在django模型中構建嵌套類別

class Category: 
    pass 

class SubCategory: 
    category=models.ForeignKey(Category,...) 
    ... 

class SubSubCategory: 
    category=models.ForeignKey(SubCategory,...) 
    ... 

class BrandOrSmthEle: 
    category=models.ForeignKey(SubSubCategory,...) 
    ... 

class Product: 
    category=models.ForeignKey(BrandOrSmthEle,...) 
    ... 
+0

如果它是一個子類別,那麼一個'self'類型的模型如何引用其父類? –

+0

@KlausD。你能否用一些例子來詳細闡述你的陳述? – Humoyun

+0

好吧,有一個屬性爲'parent'的類,它是''self''的外鍵,並允許'None'。 –

回答

3

裏面這只是一個建議,你能想到的更有效的方式一樣,

class Gender(Model): 
    #male/female 
    ..... 

class Genre(Model): 
    #casual/sports/party 
    ...... 

class Type(Model): 
    #footwear/clothes/hats 
    ...... 

class Brand(Model): 
    #Nike/Adidas/Puma 
    ..... 

class Product(Model): 
    gender = ForeignKey(Gender) 
    genre = ForeignKey(Genre) 
    type = ForeignKey(Type) 
    brand = ForeignKey(Brand) 
    ...... 

您可以通過使用此層次結構來避免嵌套體系結構。

+0

哇,真的很好的建議,我怎麼可能沒有想過這個:),真的很簡單 – Humoyun