html 上的 django for 循环无法检索其 object_lists 的每个数据字段

django for loop on html cannot retrieve every data fields for its object_lists

为什么对于我的 output.htm 文件,当我使用 django 模板“for 循环”标签检索 {{ post.firstname }} 上的数据时,还有{{ post.surname }},没有显示结果?希望得到帮助。提前致谢。

Ps: 下面的代码只是部分工作。这意味着我没有写出 python 个库,以下代码完整 html。

#views.py

class Student_list(View):
    def get(self, request):
        posts = Student.objects.all().values_list("firstname", "surname").union(Teacher.objects.all().values_list("firstname", "surname"))
        """raw sql => SELECT * FROM l2_OR_queries_student WHERE surname LIKE 'bald%' OR surname LIKE 'aus%' """
        return render(request, "l4_UNION_queries/output.htm", context = {"posts": posts})
<!--output.htm -->

    <table>
        <tr>
            <th>First Name</th>
            <th>Surname</th>
        </tr>

        {% for post in posts %}
        <tr>
            <td>{{ post.firstname }}</td>
            <td>{{ post.surname }}</td>
        </tr>
        {% endfor %}
    </table>
student.sqlite3

id  firstname   surname age classroom   teacher
4   shaina  austin  20  1   trellany
5   raquel  avery-parker    21  2   robin
6   lakisha baldwin 20  3   crystal


teacher.sqlite3
id  firstname   surname
9   trellany    abraham
10  robin   adkins
11  crystal allen
12  shaina  young

 posts = Student.objects.all().values("firstname", "surname").union(Teacher.objects.all().values("firstname", "surname"))

您需要使用 values() 而不是 values_list() 因为 values_list() returns 对象作为列表。要通过按键访问它们,只需使用 values().