Если у вас есть эти модели:
class Thing(MPTTModel):
...
thing_type = models.IntegerField(default=0)
class Data(models.Model):
thing = models.ForeignKey(Thing, related_name="data_set")
Вы можете просто сделать это в своем шаблоне:
{% recursetree nodes %}
<h1>{{ node }}</h1>
{% for data in node.data_set.all %}
{{ data.something }}
{% endfor %}
...
{% endrecursetree %}
Это наивный подход. Он будет выполнять один запрос к базе данных (извлекать связанные Data
объекты) для каждого Thing
.
Если вы используете django 1.4, вам следует предварительно извлечь объекты данных в вашем представлении, чтобы он не выполнял так много запросов:
comments = Thing.objects.filter(thing_type=2)
comments = comments.prefetch_related('data_set')
https://docs.djangoproject.com/en/dev/ref/models/querysets/#prefetch-related