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'