2011-05-17 89 views
4

我是新來的Django,我試圖建立符合此模式的數據層次:Django的數據層次的問題

會有幾個社區 - 說HuntsvillePhoenixMadison

這些社區中的每一個都可以有幾個不同的Categories。例如,Huntsville可能有Hunting,fishingskiing - 和Phoenix可能有運行,bikingswimming。然後,每個特定的類別將有許多不同的細節視圖。我試圖做到這一點:

from django.db import models 

class Community(models.Model): 
    name = models.CharField(max_length=200) #arbitrary max length 

class Category(models.Model): 
    community = models.ForeignKey(Community) 
    category = models.CharField(max_length=200) #arbitrary max length 

class Detail_View(models.Model): 
    category = models.ForeignKey(Category) 
    detailView = models.CharField(max_length=200) #arbitrary max length 
    website = models.CharField(max_length=200) #arbitrary max length 

但它似乎並沒有真正正常工作,我不明白爲什麼。

有什麼想法?

回答

5

我不確定我完全理解你要找的行爲,但我仍然有一些建議。

首先,當你真的想要多對多時,看起來你正在實現一對多。

退房http://docs.djangoproject.com/en/1.3/ref/models/relations/

每鏈接,使用models.ManyToManyField代替models.ForeignKey

此外,如果你的意思是將其定義爲一個對許多人來說,你可能不希望Category引用Community。使用短語「有一個」或「有許多」來確定這一點。由於Community「具有」Category,ForeignKey(或ManyToManyField)應該在Community模型上定義,而不是Category

我強烈建議考慮看看免費提供的Django Book項目,特別是一章Advanced Models

希望這有助於!