【发布时间】:2011-05-06 15:18:36
【问题描述】:
我有这个“工作”模型(如下所示)。
- 主机和位置之间存在 M2M 关系(一个位置有多个分配给它的主机)。
- 我还有一个 Timezone 类,它在位置和时区之间定义了外键关系(为位置分配了时区)
我遇到的问题是我无法取消注释 Host 类中的“colo”项,因为外键引用了“位置”。 Location 类是在 Host 类之后定义的。但由于 Location 类中“主机”的 M2M 引用,我无法将 Location 的定义移动到 Host 类之上。
我在概念上错过了什么吗?任何帮助将不胜感激!
这是我模型的相关部分:
class Timezone(models.Model):
name = models.CharField(max_length=32, unique=True)
def __unicode__(self):
return "%s"%(self.name)
class Host(models.Model):
name = models.CharField(max_length=32, unique=True)
# colo = models.ForeignKey(Location)
def __unicode__(self):
return "%s"%(self.name)
class Location(models.Model):
name = models.CharField(max_length=3, unique=True)
hosts = models.ManyToManyField(Host, blank=True) #not required
tz = models.ForeignKey(Timezone)
def __unicode__(self):
return "%s"%(self.name)
【问题讨论】:
标签: django django-models many-to-many