小编Joe*_*Joe的帖子

我在Django应用程序中的同一个类的两个对象之间有一个OneToOne关系.是否有可能强制实现这种关系的独特性?

我的应用程序中有以下内容:

class University(models.Model):
    ...
    sister_university = models.OneToOneField('self', related_name = 
                        'university_sister_university', 
                        blank=True, null=True, 
                        on_delete=models.SET_NULL)
Run Code Online (Sandbox Code Playgroud)

我只希望大学在这种关系的两个方向上与另一所大学有关.

例如,在数据库中,如果我选择大学A作为大学B的姐妹大学,我只希望被允许选择大学B作为大学A下的姐妹大学.但是,实际上,第二种关系没有得到强制执行.

例如:现在,在Django Admin网站下,如果我首先选择大学A作为大学B的姐妹大学,我仍然可以选择任何其他大学作为大学A姐妹大学的对象.我不仅限于选择大学B.

是否可以在数据库级别强制执行该唯一性?有没有更好的方法来完成我想要做的事情?

python database django database-design django-models

14
推荐指数
1
解决办法
230
查看次数