Django Отношение один к двум

Я хочу реализовать случай, когда модель A имеет ровно два экземпляра B, а модель B имеет ровно один экземпляр A. Каков наилучший способ реализовать это?

class A(Model):
    b1 = OneToOneField(B)
    b2 = OneToOneField(B)

Если я использую это, я должен предоставить два разных связанных имени полям b1 и b2. Я хочу иметь возможность просто сказать b.a_set.first() и получить объект, поскольку я знаю, что у B будет один A. И это не совсем oneToTwo, я думаю, b1 и b2 могут указывать на один и тот же объект B, хотя это не критично в данный момент.

class B(Model):
    a = ForeignKey(A)

Если я использую это, то это будет OneToMany, я хочу иметь явное отношение и иметь возможность использовать a.b1 и a.b2. Кроме того, я буду часто обращаться к модели B из модели A, так что это очень неэффективно. Нет смысла искать в таблице B, когда я знаю, что есть ровно два связанных экземпляра B. Я должен иметь возможность хранить соответствующие идентификаторы B в таблице A, как в предыдущем случае.

Что было бы хорошим способом реализовать это?

Вернуться на верх