Существует ли в 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)