不是预期的 django 查询集响应

Posted

技术标签:

【中文标题】不是预期的 django 查询集响应【英文标题】:Not expected django query set response 【发布时间】:2021-04-24 04:44:36 【问题描述】:

我正在使用 django 进行查询集以列出一些课程。问题是当我在 django shell 中进行查询时,它返回如下内容: ,....]>

如何才能获取表格信息?

PSD:我完全按照我的描述使用 users 表创建了一个查询集,我得到了预期的结果。但它无法在模板中显示结果。因此,如果您能提供帮助...提前感谢您的帮助。

class ListCursos( TemplateView):
    model1 = User
    model2 = Course
    template_name = 'plantillas/miscursos.html'

    def get_context_data(self, *args, **kwargs):
        context = super(ListCursos, self).get_context_data(**kwargs)
        context['usuarios'] = User.objects.all()
        context['cursos'] = Course.objects.all()
        return context

【问题讨论】:

表格信息是什么意思?每行的值? @Countour-Integral 是的,表信息 = 每行的值 【参考方案1】:

模型每个实例的列值都存储为实例变量。您还没有提供您的模型之一的定义,所以我将以此为例。

class Course(models.Model): # example model
    name = models.CharField(max_length=10)
    students = models.IntegerField()

当您有 Course 模型的查询集时,您可以通过索引访问它们

>>> all_courses = Course.objects.all()
<QuerySet [<Course: Course object (1)>]>
>>> first_course = all_courses[0]

要访问选定的Course 模型实例的值,您只需键入类定义中列的名称。例如,如果您有具有姓名历史记录的 Course 模型和 10 个学生,那么

>>> first_course.name # just type the name of the column
'history'
>>> first_course.students
10

所以要在 django 模板中访问它们,考虑到您在上下文中传递 Course.objects.all()"cursos" 键。 (就像你正在做的那样)

% for course in cursos %
    <div>course.name</div>
    <div>course.students</div>
% endfor %

【讨论】:

效果很好。谢谢@Countour-Integral

以上是关于不是预期的 django 查询集响应的主要内容,如果未能解决你的问题,请参考以下文章

表单出现错误“预期的表或查询集,而不是 str”

Django 将查询集序列化为 JSON 以仅使用字段信息和 id 构造 RESTful 响应

检查两个 Django 查询集是不是有任何共同的项目

Django 模板标签的使用是不是执行查询集?

Django ModelAdmin 查询集覆盖不起作用

Django如何过滤多对多字段中的对象,而不是原始查询集