Django select_related не извлекает подклассы моделей - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть четыре модели:

Task(models.Model):
    fields...
BasicImage(models.Model):
    task = models.ForeignKey(Task)
    fields...

VisImage(BasicImage):
    fields...

IRImage(BasicImage):
    fields...

Позже у меня есть код, который делает следующее:

task = Task.objects.get()
basicimages = task.basicimage_set.select_related().all()
imageset1 = basicimages.filter(filter=1)
imageset2 = basicimages.filter(filter=2)

и в шаблоне я в итоге отображаю информацию следующим образом:

{% for i in imageset1 %}
    {{ i.visimage.field }}
{% endfor %}

{% for i in imageset2 %}
    {{ i.irimage.field %}
{% endfor %}

Однако, согласно панели инструментов Django Debug (и очевидной задержке), Django по-прежнему запрашивает каждый объект .visimage и .irimage.Почему select_related не заботится об этом?

1 Ответ

1 голос
/ 23 февраля 2012

наследование модели добавляет неявное поле «один к одному» в модели подкласса.насколько я знаю, select_related не работает для обратных отношений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...