Django重新组合了许多领域

时间:2013-05-06 14:50:19

标签: django many-to-many

我在模板上做这项工作时遇到了一些麻烦,想知道我是否能得到一些帮助:

我有一个包含植物的表,植物表与类别表有多对多的关系。这样植物可以属于一种或多种类别。 我正在使用Django 1.5,这是模型:

class Plant(models.Model):
    scientific_name = models.CharField(max_length=128, unique=True)
    category = models.ManyToManyField(Category)
    ...

class Category(models.Model):
    category = models.CharField(max_length=128)
    ...

观点:

class PlantListView(ListView):
    context_object_name='plant_list'
    template_name='plants/index.html'
    model = Plant

    def get_queryset(self):
        return self.model.objects.all().order_by('category')

我试过这个:

{% regroup plant_list by category as category_list %}
<ul>
{% for category in category_list %}
    <li>{{ category.grouper }}
        <ul>
            {% for plant in plant_list.list %}
                <li>{{ plant.scientific_name }}</li>
            {% endfor %}
        </ul>
    </li>
{% endfor %}
</ul>

但我得到的只是:

<django.db.models.fields.related.ManyRelatedManager object at 0x1053bfb90>
<django.db.models.fields.related.ManyRelatedManager object at 0x1053bfbd0>
<django.db.models.fields.related.ManyRelatedManager object at 0x1053bfd50>

当然,我真正想要的是:

  • 年鉴
    • 藿香蓟属
    • Abutilon hybridum
    • Acalypha hispida
  • 灯泡多年生
    • 藿香蓟属
    • Allium giganteum
    • Allium karataviense

...等......

请注意,同一工厂可以存在多个类别,并应列在每个类别中。

我做错了什么?

提前致谢!!

1 个答案:

答案 0 :(得分:0)

嗯,事实证明,以类别为索引制作所有结果的Dict更容易(也可能更好)。