2

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

我有一个表,里面有植物,植物表和类别表是多对多的关系。这样植物可以属于一个或多个类别。我正在使用 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>

当然,我真正想要的是:

  • 年鉴
    • 藿香
    • 薏苡仁
    • 粗毛槐
  • 多年生灯泡
    • 藿香
    • 大葱
    • 青葱

... ETC ...

请注意,同一植物可以存在于多个类别中,并且应在每个类别中列出。

我究竟做错了什么?

提前致谢!!

4

1 回答 1

1

好吧,结果证明用类别作为索引来制作所有结果的字典更容易(而且可能更好)。

于 2013-05-07T17:32:17.470 回答