0
我試圖顯示按類別分組的成分列表。我儘可能地顯示了類別ID列表,但我似乎無法繼續前進。這裏是我的設置,非常感謝任何幫助。如何使用外鍵在django模板中重新組合
# models.py
class IngredienceCategory(models.Model):
name = models.CharField(max_length=30)
def __unicode__(self):
return self.name
class Ingredience(models.Model):
name = models.CharField(max_length=30)
category = models.ForeignKey(IngredienceCategory, null=True, blank=True)
def __unicode__(self):
return self.name
# views.py
def home(request):
ingredients = Ingredience.objects.all()
ingrcat = IngredienceCategory.objects.all()
return render_to_response('home.html', {'ingredients': ingredients, 'ingrcat': ingrcat,})
# home.html template
<h2>List of items by category:</h2>
{% regroup ingredients|dictsort:"category_id" by category_id as ingr_by_cats %}
{% for category in ingr_by_cats %}
<p>{{ category.grouper }}</p>
<ul>
{% for item in ingrcat.list %}
<li><a href="#" id="{{ item.id }}">{{ item.name }}</a></li>
{% endfor %}
</ul>
{% endfor %}
什麼我目前得到:
<h2>List of items by category:</h2>
<p>1</p>
<ul></ul>
<p>2</p>
<ul></ul>
<p>3</p>
<ul></ul>
我想要實現:
<h2>List of items by category:</h2>
<p>Category A</p>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<p>Category B/p>
<ul>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
</ul>
<p>Category C</p>
<ul>
<li>Item 7</li>
<li>Item 8</li>
<li>Item 9</li>
</ul>
謝謝克里斯,解決了我的問題的一半,項目現在正在顯示。我遇到的另一個問題是如何顯示類別名稱而不是類別ID。 – finspin 2012-07-06 19:52:40
按'category'而不是'category_id'重新組合,那麼你的'grouper'將是'Category'的一個實例,你可以像平常一樣訪問它的所有屬性。 – 2012-07-06 20:20:47
謝謝克里斯,那有效! :) – finspin 2012-07-06 20:26:56