Django数据层次结构问题

时间:2011-05-17 00:09:10

标签: python django

我是Django的新手,我正在尝试构建一个遵循这种模式的数据层次结构:

会有几个社区 - 比如HuntsvillePhoenixMadison

每个社区都可以有几个不同的Categories。例如,Huntsville可能有Huntingfishingskiing - 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

但它似乎并没有真正正常工作,我无法弄清楚原因。

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

我不确定我是否完全理解你所寻找的行为,但无论如何我都有一些建议。

首先,当你真正想要多对多时,看起来你正在实现一对多。

查看http://docs.djangoproject.com/en/1.3/ref/models/relations/

根据该链接,使用models.ManyToManyField代替models.ForeignKey

此外,如果您打算将其定义为一对多,您可能不希望Category引用Community。使用短语“has a”或“has many”来确定这一点。由于Community“具有”CategoryForeignKey(或ManyToManyField)应在Community模型上定义,而不是Category之一。

我强烈建议您查看免费提供的Django Book项目,尤其是关于Advanced Models

的章节

希望这有帮助!