Я создаю приложение django из существующей базы данных.к лучшему или к худшему, у меня есть пара взглядов, на которых я хотел бы основывать свои модели.они выглядят примерно так:
class Device(Model):
id = models.IntegerField( primary_key=True, db_column='node_id' )
name = models.CharField(max_length=127, db_column='node' )
class Meta:
db_table = 'node' # db view
managed = False
class Entity(Model):
id = models.IntegerField( primary_key=True, db_column='_id' )
device = models.ForeignKey(Device, db_column='node_id' )
class Meta:
db_table = 'entity' # db view
managed = Fase
, так что все работает хорошо.однако, когда я пытаюсь использовать шаблон, который использует ForeignKey, он очень медленный:
{% for e in entities %}
{{ e.device.name }}
{% endfor %}
, просматривая журналы, кажется, что он повторяет запросы для каждого 'node_id', и в конечном итоге время ожидания истекает.
(конечно, если я не включу e.device.name
все быстро)
есть ли способ, которым я могу оптимизировать это?
, чтобы быть справедливым, «сущность»view уже имеет имя устройства в качестве другого поля (node
), поэтому я мог бы использовать его вместо этого, но хотел бы, чтобы отношение существовало.