2013-05-06 114 views
2

我有一些麻煩,使得該模板這項工作,不知道如果我能得到一些幫助:Django的重組多對多場

我有在它的植物的表,工廠表有許多與類別表的對多關係。這樣一個工廠可以在一個或多個類別。 我使用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> 

當然,什麼我真正想要的是:

  • 年鑑
    • 藿香薊
    • 檾蕙蘭
    • 紅穗鐵莧菜
  • 燈泡常年
    • 藿香薊
    • 大白蔥
    • 韭karataviense

...等...

注意,同一植株可在多個類別中存在,而且應該在每個上市。

我在做什麼錯?

在此先感謝!

+0

試試這個:'{%通過category.category重新分組plant_list作爲category_list%}'。如果我沒有錯,你可以在模板語法中使用'.'。 – FallenAngel 2013-05-06 15:22:11

+0

不是這樣。 ''category_list' =='[{u'list':[],u'grouper':None}]'。石斑魚是空的。 – 2013-05-06 16:17:29

回答

0

那麼,事實證明,使用類別作爲索引來製作所有結果的Dict更容易(也許更好)。