Модель внешнего ключа Django

Я пытаюсь создать 3 модели; Person , Address и Anniversy . План состоит в том, чтобы иметь один адрес и один аннуитет для каждого человека. Но каждый адрес и аннуитет могут иметь несколько человек.

Пока у меня есть следующее, но я думаю, что отношения OneToMany(foreign key) могут быть неправильными. т.е. каждый адрес может иметь одного человека, но каждый может иметь несколько адресов.

 from django.db import models class Person(models.Model): name = models.CharField(max_length=50) birthday = models.DateField() def __unicode__(self): return u'%s' % (self.name) class Address(models.Model): person = models.ForeignKey(Person) address = models.CharField(max_length=150) def __unicode__(self): return u'%s' % (self.address) class Anniversy(models.Model): person = models.ForeignKey(Person) anniversy = models.DateField() def __unicode__(self): return u'%s' % (self.anniversy) 

One Solution collect form web for “Модель внешнего ключа Django”

Вы создаете отношения по-другому; добавьте внешние ключи к типу Person для создания отношения «Много-к-одному»:

 class Person(models.Model): name = models.CharField(max_length=50) birthday = models.DateField() anniversary = models.ForeignKey(Anniversary) address = models.ForeignKey(Address) class Address(models.Model): line1 = models.CharField(max_length=150) line2 = models.CharField(max_length=150) postalcode = models.CharField(max_length=10) city = models.CharField(max_length=150) country = models.CharField(max_length=150) class Anniversary(models.Model): date = models.DateField() 

Любой человек может быть связан только с одним адресом и одной годовщиной, но адреса и юбилеи могут быть указаны из нескольких записей Person .

Anniversary и Address объектам также будут обратные, обратные отношения; по умолчанию он будет называться person_set но вы можете настроить другое имя, если вам нужно. См. Следующие отношения «назад» в документации по запросам.

  • Как сериализовать в JSON список объектов модели в django / python
  • Модели django, выбирающие одно поле
  • Класс модели Django и настраиваемое свойство
  • Создайте модель Django или обновите ее, если она существует
  • manage.py syncdb не добавляет таблицы для некоторых моделей
  • Модель либо не установлена, либо абстрактна
  • Основы MVC и джанго
  • Python: взаимодействие со сложным хранилищем данных
  • Как получить динамический класс Django?
  • UUID в качестве значения по умолчанию в модели Django
  • Около 20 моделей в 1 приложении django
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.