-
У меня проблема с тем что Django шлет огромное кол-во запросов с одной страницы.
Имеется модель:
class Theme(models.Model):
title = models.CharField(max_length=250,db_index=True)
class Company(models.Model):
name = models.CharField(max_length=250,core=True,db_index=True)
thematic = models.ForeignKey(Theme,db_index=True,default=1)
class Person(models.Model):
company = models.ForeignKey(Company)
name = models.CharField(max_length=250,core=True,db_index=True)
tag = models.ManyToManyField(Theme)
Django 7835.
На странице выводится список всех Компаний и Персон определенной тематики.
Компании связаны через FK с Темами, мне не понятно почему они не дергаются по LEFT JOIN при вынимании данных о Компании, а каждый раз посылается отдельный запрос к таблице themes.
Можно ли как-то изменить поведение ORM, что бы он использовал JOIN.
Как можно в данном случае подсунуть VIEW вместо таблицы Persons?
Персоны связаны с темами M2M. Тут само-собой на каждую персону идет запрос на выборку тем. Можно ли что-то придумать?
И вообще глобальный вопрос. Можно как-то создать свой QuerySet объект из результатов custom query или работы функции? Как результаты своих запросов отдавать в шаблоны, чтобы не иметь проблем с кодировкой? -
Что Вы имеете в виду под "подсунуть view"? Создаете и "подсовываете", только не вижу в этом смысла. ИМХО, в Вашем случае очень хорошо будет работать кеширование.
-
Если говорить про FK, то мне не нравится логика по которой связываются таблицы. JOIN тут уместнее.
-
JOIN тут уместнее.
Тут точно уместнее чуть-чуть почитать документацию ;) Ну и конечно не забывать про кеширование.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

