具有主要关系的ForeignKey字段

时间:2011-12-06 13:57:03

标签: database django relational-database one-to-many

我的数据库中有两个表(django:我的应用程序中的模型),如下所示:

class Model1(models.Model):
    name = models.CharField()
    #etc....

class Model2(models.Model):
    link = models.ForeignKey(Model1)

每个Model1都可以链接到Model2的许多实例,但Model2只能链接到一个Model1 - 一个基本的一对多关系。

我的问题是:我需要每个Model1都有一个主Model2 - 也就是说,其中一个相关的Model2需要以某种方式标记为“primary”。

到目前为止,这些是我的想法:我应该用

做到这一点
  1. Model2上的一个布尔字段,表示它是否为主要字符,然后是每个Model1只有一个Model2的应用级验证可以将该字段设置为True,或
  2. Model1上名为“primary_model2”的ForeignKey字段,链接到Model2实例,应用级验证只显示链接到Model1的Model2可能是主要的
  3. 任何想法?我有点难过。提前谢谢!

1 个答案:

答案 0 :(得分:1)

我会在Model2上使用布尔值。执行保存覆盖非常容易,它会将与Model1相关的Model2的任何其他实例设置为false。