2010-06-21 24 views
1

我期待我的分類項,美中不足的是有我想要的類別的多個級別。舉個例子:django中的多級層次結構下拉?

css 
    layout 
      floats 
    specificity, selectors 
html 
    html 5 

在這個例子中,csshtml是父類,CSS有2個孩子和layoutfloats一個孩子。

我想的模式,我需要將

class Category: 
    name = models.TextField() 
    parentId = models.IntegerField(blank=True) 

什麼我在是毫無章法,我將如何能夠使一個多層次的下拉菜單在我的管理,這樣,當我張貼我的條目可以輕鬆選擇一個類別?

所以要重申,我將如何能夠產生嵌套的下拉菜單中的多層次,這樣,當我在輸入模式輸入的東西,我可以選擇每個條目一類?

+1

剛剛碰到這個,我會盡我所能整合它... http://code.djangoproject.com/wiki/CookBookCategoryDataModelPostMagic – 2010-06-21 23:32:00

回答

5

看來,你的問題是你是什麼,說明略有不同。這裏的問題是沒有那麼多有關如何顯示層次,這是簡單的:

def __unicode__(self): 
    return self.depth * " " 

的令人失望的是如何捕捉和顯示層次/深度。這是一個常見問題:將樹存儲在關聯數據庫中。像往常一樣,您的解決方案取決於寫入/讀取重量和正常化程度之間的權衡。例如,你可以通過模型的'save'方法遞歸地到達根節點,並從那裏在節點上存儲'深度'屬性。我的建議是使用django mptt。它非常穩固,解決了很多正常的障礙。作爲獎勵,您可以獲得常見樹木任務的好幫手。