Django ListView не отображает данные из базы данных, несмотря на заполненную модель

Я новичок в 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 добавьте этот код, который передает шаблону queryset как 'blogpost_list'

from django.views.generic import ListView

from .models import BlogPost

class BlogListView(ListView):

model = BlogPost
template_name = 'blog/blog_list.html'
context_object_name = 'blogpost_list' 
Вернуться на верх