У меня есть 3 модели: A, B и C.
- A имеет тип, который определяет, может ли B или C подключиться к нему
- B имеет отношение OnetoOne к A
- C имеет отношение OnetoOne к A
class A(models.Model):
type = models.SmallIntegerField(
choices=A_TYPE_CHOICES, default=ACCOUNT_TYPE_B
)
class B(models.Model):
a = models.OneToOneField(A, related_name='b', on_delete=models.CASCADE)
class C(models.Model):
a = models.OneToOneField(A, related_name='c', on_delete=models.CASCADE)
Что мне нужно:
- получить все учетные записи типа B, кроме BОбъекты не связаны
- так же, как 1 для C
Итак, у меня есть:
a_type_b = Account.objects.filter(type=ACCOUNT_TYPE_B)
Есть что-нибудь, чтобы проверить, является ли B модель / объектуже подключен / связан вместо зацикливания всех учетных записей и проверки?, потому что это может занять много времени и запросов и неэффективно
Не позволяйте C подключаться к учетной записи type_B и наоборот при создании / обновлении модели.