首页 > 解决方案 > 我想更改 Django 列表输出格式

问题描述

我想更改 Django 列表输出格式。

我想更改列表的输出格式

视图代码如下:

def team_todo_list(request, team_name):
    print("team_name : ", team_name)

    teamId = TeamInfo.objects.get(team_name = team_name).id
    team_leader_name = TeamInfo.objects.get(team_name = team_name).leader.username

    print("team_leader_name : ", team_leader_name)

    team_member = TeamMember.objects.filter(team=teamId)
    classification_list = Classification.objects.all()
    team_name= team_name

    member_array = []
    for member in team_member:
        # print(member.member.id) # nomad_coder, terecal
        member_array.append(member.member)

    team_todo_list = Todo.objects.filter(author__in=member_array)

    print('team_todo_list : ' , team_todo_list)
    print('team_member : ' , team_member)

    return render(request, 'todo/team_todo_list.html', {
        "team_todo_list":team_todo_list,
        "team_member_list":team_member,
        "classification_list":classification_list,
        "team_name":team_name,
        "team_leader_name": team_leader_name
    })

模板代码为:

    <table class="table table-bordered" id="todo_list">
        <tr>
            <td>check</td>
            <td>class</td>
            <td>manager</td>
            <td>title</td>
            <td>remaining time</td>
            <td>deadline</td>
        </tr>

        {% if team_todo_list.exists %}
        {% for p in team_todo_list %}
        <tr>
            <td>
                <input type="checkbox" id="{{p.pk}}" class="td_check">
            </td>
            <td>{{p.classification}}</td>
            <td>{{p.author}}</td>
            <td>
                <a href="" id={{p.id}} class="title_for_list">
                    {{p.title}} (<font color="blue"> from {{p.director}}</font> )
                </a><br>
                <a class="badge badge-pill badge-dark" href="{% url "todo:todo_edit" p.id %}">modify</a>
            </td>
            <td>
                {% if p.dead_line %}
                {{p.remaining_time}}
                {% else %}
                {% endif %}
            </td>
            <td>{{p.dead_line}}</td>
        </tr>
        {% endfor %}
        <tbody id="tbody_todo"></tbody>
        {% else %}
        <tr>
            <td colspan="5">
                <h4>there is no article</h4>
            </td>
        </tr>
        {% endif %}

    </table>

目前是这种格式

当前的

我想像这样改变它。

感谢您告诉我们如何修改视图或模板以更改列表的输出格式。

非常感谢您告诉我们如何

此代码解决了问题

    <table class="table table-bordered" id="todo_list">


        {% regroup team_todo_list by author as author_list %}

        {% for author in author_list %}
            <tr>
                <td colspan="6">
                    <h4>
                        {{ author.grouper }}
                    </h4>
                </td>
            </tr>

            <tr>
                <td>체크</td>
                <td>분류</td>
                <td>담당</td>
                <td>title</td>
                <td>남은 시간</td>
                <td>마감 기한</td>
            </tr>

            {% for todo in author.list %}

            <tr>
                <td>
                    <input type="checkbox" id="{{todo.pk}}" class="td_check">
                </td>
                <td>{{todo.classification}}</td>
                <td>{{todo.author}}</td>
                <td>
                    <a href="" id={{p.id}} class="title_for_list">
                        {{todo.title}} (<font color="blue"> from {{todo.director}}</font> )
                    </a><br>
                    <a class="badge badge-pill badge-dark" href="{% url "todo:todo_edit" todo.id %}">수정</a>
                </td>
                <td>
                    {% if todo.dead_line %}
                        {{todo.remaining_time}}
                    {% else %}

                    {% endif %}
                </td>
                <td>{{todo.dead_line}}</td>
            </tr>
            {% endfor %}

        {% endfor %}

    </table>

标签: django

解决方案


您可以使用重组模板标签,它允许您在 Django 模板中呈现时对数据进行分组。像这样:

{% regroup team_todo_list by author as author_list %}

{% for author in author_list %}
    <p>Author name: {{ author.grouper }}</p>
    {% for todo in author.list %}
        <p>Show your todo here {{ todo }}</p>
    {% endfor %}
{% endfor %}
  • author是您要分组的关键字
  • author_list是分组数据的列表
  • .grouper是您要分组的字段的值
  • .list是按字段分组的项目列表

希望有帮助!


推荐阅读