我是 Django 新手,正在尝试创建一个简单的博客应用程序。我有一个 ListView 应该显示数据库中的所有博客文章,但模板显示一个空页面。我已通过管理面板确认数据库中有条目。
这是我的代码:
# models.py
from django.db import models
class BlogPost(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
# views.py
from django.views.generic import ListView
from .models import BlogPost
class BlogListView(ListView):
model = BlogPost
template_name = 'blog/blog_list.html'
# blog_list.html template
{% extends 'base.html' %}
{% block content %}
{% for post in blogpost_list %}
<h2>{{ post.title }}</h2>
<p>{{ post.content }}</p>
{% endfor %}
{% endblock %}
有人可以帮我找出我做错了什么吗?
我通过管理面板检查了数据库并确认帖子存在 尝试使用 print(self.get_queryset()) 在视图中打印查询集 将模板变量从 blogpost_list 更改为 object_list
页面上显示的所有博客文章的想要列表,但相反,我得到的是一个没有错误的空白页面。
在views.py中,添加此代码,将查询集作为“blogpost_list”传递给模板
从 django.views.generic 导入 ListView
从.models导入BlogPost
类 BlogListView(ListView):
model = BlogPost
template_name = 'blog/blog_list.html'
context_object_name = 'blogpost_list'