Шаблон Django не отображает элементы модели

извините, я очень новичок как участник (и как разработчик тоже). Я недавно начал работать с Django, и я пытаюсь отобразить на странице список статей с некоторыми элементами (название, изображение, created_at, содержание), уже сделанными в модели.

Виды, шаблон и пути (урлы) тоже были созданы. Но когда я запускаю сервер и открываю браузер, он отображает только заголовок, который я передал в качестве параметра render в представлении, а не объект (articles = Article.objects.all()), созданный в представлении

blog/models.py

from email.mime import image
from email.policy import default
from tabnanny import verbose
from turtle import update
from unicodedata import category
from venv import create
from django.db import models
from ckeditor.fields import RichTextField 
from django.contrib.auth.models import User

# Create your models here.
class Category(models.Model):
    name = models.CharField(max_length=100, verbose_name='name')
    description = models.CharField(max_length=250, verbose_name='description')
    create_at = models.DateTimeField(auto_now_add=True, verbose_name='created_at')

    class Meta:
        verbose_name = 'Category'
        verbose_name_plural= 'Categories'

    def __str__(self):
        return self.name

class Article(models.Model):
    title= models.CharField(max_length=150, verbose_name="title")
    content= RichTextField(verbose_name='Content')
    image= models.ImageField(default='null', verbose_name="Image")
    public = models.BooleanField(verbose_name="Public?")
    user= models.ForeignKey(User, verbose_name="User", on_delete=models.CASCADE )
    categories = models.ManyToManyField(Category, verbose_name='Category',  blank=True)
    create_at= models.DateTimeField(auto_now_add=True, verbose_name="Created at")
    update_at= models.DateTimeField(auto_now=True, verbose_name="update at")
    
    class Meta:
        verbose_name = 'Article'
        verbose_name_plural= 'Articles'

    def __str__(self):
        return self.title

blog/views.py

from django.shortcuts import render
from blog.models import Article, Category

# Create your views here.

def list(request):
    articles = Article.objects.all()

    return render(request, 'articles/list.html', {
         'title' : 'Articles',
         'articles': articles
      } )

blog/list.html

  {% extends 'layouts/layout.html' %}
    
    {% block title  %}
        {{title}}
    {% endblock  %}
    {% block content  %}
        <h1 class= "title">{{title}}</h1>
        {% for article in articles %} 
                <article class="article-item">                
                    {% if article.image != 'null' and article.image|length >= 1 %}
                        <div class="image ">
                            <img src="{{article.image.url}}" />
                        </div>                                  
                    {% endif %}
                    <div class="data"> 
                        <h2>
                            {{article.title}}
                        </h2>                    
                        <span class="date">{{article.create_at}}</span>                         
                         <p>{{article.content|safe}} </p>
                    </div>              
                    <div class="clearfix"></div>
                </article>
        {%endfor%}

     {% endblock  %}

Любая помощь будет очень признательна

Похоже, что содержимое блока не отображается целиком - Есть ли у вас {% block content %} в layout.html? Вы можете проверить в браузере, содержит ли исходный код html блока содержимого и отсутствуют ли только теги

Вернуться на верх