У меня есть основная модель, и у пяти подмоделей из пяти четырех моделей есть отношение иностранного ключа, и у одной модели есть отношение один к одному с основной моделью. Я пытаюсь выполнить запрос к основной модели и извлечь связанные записи из подмодели, отсортированной по «id», и выбрать первую запись. Я пробовал несколько способов добиться этого, но все же, общая операция занимает около 20 секунд, чтобы получить около 6000 записей. Я был бы очень признателен за любую помощь для эффективного извлечения данных из этих моделей.
Model M:
id
name
status
Model SA:
m = Foreignkey(M)
sa1
Model SB:
m = Foreignkey(M)
sb1
Model SC:
m = Foreignkey(M)
sc1
Model SD:
m = Foreignkey(M)
sd1
Model SE:
m = OneToOne(M)
se1
Я устал от select_related, prefetch_related, но все еще не в состоянии сократить время оборота.
После попытки по-разному, в настоящее время я использую ниже, но из этого я получаю единственные записи, которые имеют данные в подмоделях. Но мне нужно было бы получить все записи из основной модели независимо от данных в подмоделях.
data = M.objects.exclude(
SA=None,
SB=None,
SC=None,
SD=None,
SE=None,
)
Я ищу вывод:
{'id': 1212, 'name':'asdasd', 'sa1':'asdasda, 'sb1':'asdasda, 'sc1':'asdasda, 'sd1':'asdasda, 'se1':'asdasda}