如何从django-admin面板获取所有项目?

时间:2018-10-11 20:43:47

标签: python html django

我有一个html页面

def list_blogs(request):
    all_blogs = Blog.objects.all
    return render(request, 'blogs.html', {'blogs': all_blogs})

在“ ul”中,它必须显示all_blogs中的所有项目是

class Blog(models.Model):
    header = models.CharField(max_length=100)
    data = models.CharField(max_length=500)

    def __str__(self):
        return self.header

博客是

for bl in all_blogs:
    print(str(bl))

并且html页面的输出仅为“ MY BLOG”,其中没有任何博客,在管理面板中我有4个博客,我尝试打印

Failed to resolve "System.Runtime.InteropServices.StandardOleMarshalObject" reference from "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

但是它不起作用,我还检查了本地数据库中的博客,这很好。

1 个答案:

答案 0 :(得分:0)

all() [Django-doc]是一种方法,而不是属性,因此您应该调用以获取所有Blog对象的查询集,因此:

def list_blogs(request):
    all_blogs = Blog.objects.all()
    return render(request, 'blogs.html', {'blogs': all_blogs})

此外,在上下文中,您将查询集命名为blogs,而不是 all_blogs(这是视图中变量的名称,但您将其作为{{ 1}}(上下文),因此您应该将视图中的键更改为'blogs',或将模板中的变量更改为:

'all_blogs'