我有一个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"
但是它不起作用,我还检查了本地数据库中的博客,这很好。
答案 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'