Между узлами и местоположениями имеется много-много взаимосвязей, однако вы хотите, чтобы узлы имели то же местоположение, которое вы на самом деле хотите, чтобы соотношение между узлами и местоположениями было одно-многим. Это объявляется с использованием models.ForeignKey, которое есть в вашем классе Host. Вам просто нужно изменить порядок кода, чтобы класс Host появился после класса Location, что позволит вам ссылаться на него. Также вы можете удалить отношения многие-многие.
class Timezone(models.Model):
name = models.CharField(max_length=32, unique=True)
def __unicode__(self):
return "%s"%(self.name)
class Location(models.Model):
name = models.CharField(max_length=3, unique=True)
tz = models.ForeignKey(Timezone)
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)
Я не был уверен в лучшем способе сделать это, поэтому я просто напишу другой ответ. Мой первый ответ, в основном, позволил nnachefski создать модель, которую он определил в вопросе. Прочитав его комментарии, я понял, что ему на самом деле нужна модель, немного отличающаяся от той, которую он определил.