发布于 2015-02-13 13:39:09
您可以使用第三个表模拟可空外键:
class City(models.Model):
name = models.CharField(max_length=80)
class Person(models.Model):
name = models.CharField(max_length=80)
class PersonCity(models.Model):
person = models.ForeignKey(Person, unique=True)
city = models.ForeignKey(City)这样,您将只在表PersonCity中为那些具有已知City的人创建一行。要进入某一特定人的城市,您将使用:
city = person.personcity_set().first().city您可以创建一个自定义管理器来缩短这个语法,并检查空personcity_set,但我个人认为创建一个可空的外键仍然更容易阅读和调试。
https://stackoverflow.com/questions/28500331
复制相似问题