Так же есть люди и адреса. Человек может иметь более одного адреса, но только один адрес может быть помечен как основной на человека. Ниже приведены два способа, которыми я подумал сделать это.
Первое неудобно при сохранении, так как я должен сохранить человека, затем вариант, а затем снова человека с вариантом pk.
При втором подходе кажется, что единственный способ не дать человеку иметь более одного основного адреса - это добавить проверку в код.
# First approach
class Person(models.Model):
primary_address = models.ForeignKey('Address')
...
class Address(models.Model):
person = models.ForeignKey(Person)
...
# Second approach
class Person(models.Model):
...
class Address(models.Model):
person = models.ForeignKey(Person)
is_primary = models.BooleanField()
...