如何按值和该类别中的值列出分组

2024-10-01 07:47:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望我的模板以标题的形式按类别显示我的组,然后在其下按类别显示该组的所有值。例如,我的表如下所示:

['John','Physics']
['Jim','Physics']
['Sam','Biology']
['Sarah','Biology']

我想让模板输出这个:

物理学

约翰

吉姆

生物学

山姆

莎拉

我不确定在veiws.py中放什么,因为我通常在SQL中这样做-->;首先按类别分组,然后返回该类别中的所有结果

我的veiws.py和模板看起来如何实现这一点?谢谢

我当前的veiws.py:

def department(request):
students = Students.objects.all().order_by('department')
return render(request, 'department.html', {
    'students':students,
})

这是我的模特

class Mentors(models.Model):
    name = models.CharField(max_length=100)
    degree = models.CharField(max_length=100)
    department = models.CharField(max_length=100)

以及我的模板:

{% if mentors %}
<div class="row">
    {% for mentor in mentors %}
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-4">
                <h3>{{ mentor.department }}</h3>
            </div>
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-4">
                <div class="thumbnail">
                    <img src="{{ mentor.image.url }}" class="img-thumbnail">
                    <div class="caption">
                        <h4 class="text-center">{{ mentor.name }}, {{ mentor.degree }}</h4>
                        <p class="text-center"><small>{{ mentor.department }}</small></p>
                    </div>
                </div>
            </div>
    {% endfor%}
</div><!-- /.end row -->
{% endif %}

Tags: pydiv模板modelscol类别lengthmax
1条回答
网友
1楼 · 发布于 2024-10-01 07:47:21

模板(department.html)是列出所有学生的地方。你必须有一些类似的:

{% if students %}
    {% for student in students %}
        <p>{{ student.NAME_FIELD }}</p>
        {{ student.DEPARTMENT_FIELD}}
    {% endfor %}
{% else %}
    No student are available.
{% endif %}

NAME\u字段和DEPARTMENT\u字段是您在model.py中声明的字段

相关问题 更多 >