我有這個「工作」模型(如下所示)。與M2M和外鍵關係的Django模型問題
- 主機和位置之間存在M2M關係(位置有多個主機分配給它)。
- 我也有位置和時區之間定義(包含時區的位置分配)外鍵關係的時區級
我遇到的問題是,我無法取消註釋「的colo」由於對「位置」的外鍵引用而導致Host類中的項目。 Location類是在Host類之後定義的。但是由於位置類中的「主機」的M2M參考,我無法將位置的定義移到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)
啊哈!這正是我需要的。我不應該擔心在模型中定義落後的關係。我應該使用查詢集和過濾器來在需要時在視圖中反轉關係。謝謝!!! – nnachefski 2011-05-06 17:21:56