【问题标题】:how to group by category in Django如何在 Django 中按类别分组
【发布时间】:2022-11-29 04:52:13
【问题描述】:

我有一个显示在 Django 站点上的项目任务列表。但是我如何在模板中强制它以这种方式拆分项目?

我想要做的是有章节标题:

**PROJECT 1**
Task 1
Task 2
Task 3

**PROJECT 2**
Task 1
Task 2

【问题讨论】:

  • 分享您的模型。

标签: django


【解决方案1】:

假设您有两个模型,一个类别和一个帖子(很像一个项目和一个任务):

class Category(models.Model):
    name = ...
    ...

class Post(models.Model):
    title = ...
    category = models.ForeignKey(... related_name = "posts")
    ...

您可以像这样将类别传递给模板:

def view(request):
    # get all categories
    cats = Category.objects.all().prefetch_related("posts") 
    # using prefetch related to prevent lazy-loading of queries, 
    # this might give a tiny performance increase reducing amount 
    # of database queries

    # render the template
    render(...., {"category":cats})

在模板中,您可以执行以下操作:

{% for category in categories %}
    {{category.name}}
    {% for post in category.posts.all %}
        {{post.title}}
    {% endfor %}
{% endfor %}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-27
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多