Skip to main content
 首页 » 编程设计

python之Django 按字段分组结果

2024年08月30日20zhwl

抱歉这个菜鸟问题。 假设我们有一个具有关系的模型:

  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 输出?

请您参考如下方法:

将类别传递给你的模板,然后你就可以做这样的事情了

<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>