Python 从多个模型检索所有相关对象时,如何限制查询数量?

Python 从多个模型检索所有相关对象时,如何限制查询数量?,python,django,django-models,django-database,django-1.7,Python,Django,Django Models,Django Database,Django 1.7,假设我有这个模型: class MyLogModel(models.Model): log_stuff = models.CharField(max_length) class MoreLogModel(models.Model): word = models.CharField(max_length) my_log_model = models.ForeignKey(MyLogModel, related_name="more_log_models") 现在假设有1.000.0

假设我有这个模型:

class MyLogModel(models.Model):
  log_stuff = models.CharField(max_length)

class MoreLogModel(models.Model):
  word = models.CharField(max_length)
  my_log_model = models.ForeignKey(MyLogModel, related_name="more_log_models")
现在假设有1.000.000.000个MyLogModel和10倍以上的LogModel与它们相关

在我看来,我想向用户展示最新的100个MyLogModel以及与之相关的MoreLogModel的所有“word”字段。每个MyLogModel平均应该有10个以上的LogModel

但如果我只使用(伪代码):

然后在模板中循环,始终放置另一个循环:

{% for my_log in  my_log_model_query %}
  {% for more_log_model my_log.more_log_models %}
    {{ more_log_model.word }}
  {% endfor %}
{% endfor %}
这将导致大量的数据库查询,对吗

所以我想知道的是,是否有可能查询所有MyLogModel,并在该模型所附的列表中包含相关的“more_log_models”

我之所以使用外键关系,是因为数据来自一个多线程的服务器进程,并且在需要时输入“word”

那么有什么办法可以解决这个问题吗

另外: 我以前使用的另一种方法是只有一个模型,其中有一个单词字段和一个组id。这个单词字段只包含一个单词,每个单词都有一个条目。这会导致“日志内容”被复制,但我不认为这有什么大问题。一个巨大的问题是遍历所有这些日志,并根据组ID组合它们,然后再次根据时间对它们进行排序。最后,这会减少查询,但我必须对所有内容至少进行两次排序,这不是很快

{% for my_log in  my_log_model_query %}
  {% for more_log_model my_log.more_log_models %}
    {{ more_log_model.word }}
  {% endfor %}
{% endfor %}