Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:从db调用对象返回<;查询集[…]>;_Python_Django_Python 3.x_Django 1.11 - Fatal编程技术网

Python Django:从db调用对象返回<;查询集[…]>;

Python Django:从db调用对象返回<;查询集[…]>;,python,django,python-3.x,django-1.11,Python,Django,Python 3.x,Django 1.11,我正在尝试建立一个非常简单的博客应用程序,同时显示数据库中的所有帖子。然而,我的四篇文章在页面上显示为 <QuerySet [<Post: Test content>, <Post: Second test post>, <Post: Third time's the charm>, <Post: Here is a post.>]> models.py: 1 from django.db import models 2

我正在尝试建立一个非常简单的博客应用程序,同时显示数据库中的所有帖子。然而,我的四篇文章在页面上显示为

<QuerySet [<Post: Test content>, <Post: Second test post>, <Post: Third time's the charm>, <Post: Here is a post.>]>
models.py:

  1 from django.db import models
  2
  3 class Post(models.Model):
  4     content = models.CharField(max_length = 200)
  5
  6     def __str__(self):
  7         return self.content
main.html:

  1 <head>                                                      
  2   <h1>{{ post }}</h1>
  3
  4 </head>
  5
  6 <body>
  7   {{ testvar }}
  8   {% for i in post_list %}
  9   <li>i</li>
 10   {% endfor %}
 11 </body>
1
2{{post}}
3.
4.
5.
6.
7{{testvar}}
8{post_list%}
9
  • i
  • 10{%endfor%} 11

    我是django的新手,所以如果有其他建议或批评,我将不胜感激。谢谢。

    首先,您需要将一个字典传递给
    渲染

    return render(request, 'posts/main.html',                              
        {'post': post_list, 'testvar': testvar},
    )
    
    您的模板不会给您声明的输出,因为您从来不会显示整个
    post\u list
    ,也不会显示循环中每个元素的内容。大概你的意思是:

    {% for i in post_list %}
        <li>{{ i }}</li>
    {% endfor %}
    

    首先,您需要将一个字典传递给
    render

    return render(request, 'posts/main.html',                              
        {'post': post_list, 'testvar': testvar},
    )
    
    您的模板不会给您声明的输出,因为您从来不会显示整个
    post\u list
    ,也不会显示循环中每个元素的内容。大概你的意思是:

    {% for i in post_list %}
        <li>{{ i }}</li>
    {% endfor %}
    

    在您的
    视图.py中
    将返回状态更改为:

    return render(request, 'posts/main.html', {'post': post_list, 'testvar': testvar})
    
    因为render的第三个参数需要一个字典。此外,为了在模板中呈现帖子,您应该将帖子打印为

    {% for i in post_list %}
        <li>{{ i }}</li>
    {% endfor %}
    
    {post_list%中的i的%
    
  • {{i}
  • {%endfor%}
    在您的
    视图中.py
    将返回状态更改为:

    return render(request, 'posts/main.html', {'post': post_list, 'testvar': testvar})
    
    因为render的第三个参数需要一个字典。此外,为了在模板中呈现帖子,您应该将帖子打印为

    {% for i in post_list %}
        <li>{{ i }}</li>
    {% endfor %}
    
    {post_list%中的i的%
    
  • {{i}
  • {%endfor%}
    上下文应该是一个字典,包含您需要的任意多个键:值对

      6 def post(request ):
      7     testvar = "TEST VARIABLE PLZ IGNORE"
      8     post_list = Post.objects.order_by('id')
      9
     10     return render(request, 'posts/main.html',
     11             {'post': post_list, 'testvar': testvar},
     12
    

    上下文
    应该是一个字典,包含您需要的任意多个键:值对

      6 def post(request ):
      7     testvar = "TEST VARIABLE PLZ IGNORE"
      8     post_list = Post.objects.order_by('id')
      9
     10     return render(request, 'posts/main.html',
     11             {'post': post_list, 'testvar': testvar},
     12