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

Posted

技术标签:

【中文标题】html 上的 django for 循环无法检索其 object_lists 的每个数据字段【英文标题】:django for loop on html cannot retrieve every data fields for its object_lists 【发布时间】:2021-11-13 12:31:57 【问题描述】:

为什么我的 output.htm 文件,当我使用 django 模板“for loop”标签来检索 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 clas-s-room   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

【问题讨论】:

get 函数中有数据吗?尝试打印posts数据并检查是否有数据 这能回答你的问题吗? Django values_list vs values @Sabil 当我打印帖子时,数据如下: parker'), ('robin', 'adkins'), ('shaina', 'austin'), ('shaina', 'young'), ('trellany', 'abraham')]> @Abdul Aziz Barkat 感谢您的帮助,但不是真的 % for firstname, surname in posts % firstname surname % endfor % 。我想我应该这样写html。但我只是想知道为什么上述方法不起作用(即 post.firstname,post.surname) 【参考方案1】:
 posts = Student.objects.all().values("firstname", "surname").union(Teacher.objects.all().values("firstname", "surname"))

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

【讨论】:

谢谢大家。我想我现在明白了。由于 values_list() 返回列表而不是字典对象,因此我无法使用字典对象的键项来访问其值项。

以上是关于html 上的 django for 循环无法检索其 object_lists 的每个数据字段的主要内容,如果未能解决你的问题,请参考以下文章

无法在 for 循环中检索数组值

在 Django 中围绕 bootstrap html 标签封闭 For 循环

从 Django HTML 表单中检索数据并将其传递给 MySQL 数据库

无法在 Django 模板文件的 for 循环中使用条件标签

在Django模板中使用for循环显示多个chart.js图表

如何在 Django 模板中使用这个 for 循环? [关闭]