2

noobの質問でごめんなさい。関係のあるモデルがあると仮定します。

  class Book(models.Model):
     name = models.CharField(max_length=300)
     category = models.ForeignKey(Category)

  class Category(models.Model):
     name = models.CharField(max_length=300)

どういうわけか結果をグループ化して、テンプレートにこのようなものを含めることは可能ですか?

<ul>
   {% for category in book_categories%}
              <li> 
                  {{category.name}} 
                   <br/>  
                  {% for book in category%}
                      {{book.name}} , {{book.author}}, etc...
                  {% endfor %} 
             </li>
   {% endfor %}           
</ul>

または私は物事を複雑にしていて、そのようなhtml出力を達成するためのより簡単な方法がありますか?

4

2 に答える 2

2

カテゴリをテンプレートに渡すと、次のようなことができます

<ul>
   {% for category in categories %}
              <li> 
                  {{category.name}} 
                   <br/>  
                  {% for book in category.book_set.all %}
                      {{book.name}} , {{book.author}}, etc...
                  {% endfor %} 
             </li>
   {% endfor %}           
</ul>
于 2012-09-27T14:39:09.330 に答える
1

カテゴリ別に並べ替えられた本だけを読み込んで、テンプレートに次のようなものを含めることができます。

<ul>
  {% for book in books %}
    <li>
        {% ifchanged book.category__name %}
            {{ book.category__name }}
        {% endifchanged %}

        <br/>  
        {{book.name}} , {{book.author}}, etc...
    </li>
  {% endfor %}          
</ul>
于 2012-09-27T14:42:41.030 に答える