Существует ли в django множественная таблица?

У меня есть пять моделей,

Model1 - Primary Model
Model2 - One to One with mode1
Model3 - One to Many with mode1
Model4 - One to One with mode1
Model5 - One to Many with mode1

Мне нужно проверить, существуют ли какие-либо данные в каждой из таблиц, я могу сделать это одним запросом, но хотел бы знать, есть ли какой-либо элегантный способ проверки существования записей?

Выше приведено для django

Если я правильно понимаю ваши отношения, то для каждого экземпляра Model1 может существовать 1 или более экземпляров в других моделях.

Если ваша база данных использует проверку целостности (Foreignkeys, как любая нормальная реляционная база данных), то если нет экземпляра для Model1, то вам даже не нужно искать экземпляры в других моделях/таблицах (в этом случае вы экономите 4 дополнительных запроса).

Если экземпляр существует в Model1, то вам нужно запросить другие модели/таблицы. Если вам нужно только количество, то можно использовать аннотации, например, так:

from django.db import models

qs = Model1.objects.annotate(
    model2_count=models.Count('model2'),
    model3_count=models.Count('model3'),
    model4_count=models.Count('model4'),
    model5_count=models.Count('model5'))
for e in qs:
    print(e.pk, e.model2_count)
Вернуться на верх