Django db не отображается в представлениях html
Я нормально настроил, как я думаю, представление, url и модели, но я все еще не понимаю, почему ничего не отображается в шаблоне, это моя проблема в настоящее время помогите мне решить эту проблему
from django.shortcuts import render, get_object_or_404
from django.views.generic import ListView
from .models import Poster, CategoriePost
class Posterlist (ListView):
queryset = Poster.objects.all()
template_name = 'blog.html'
from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
from django.urls import reverse
from django.utils.text import slugify
from ckeditor.fields import RichTextField
class CategoriePost(models.Model):
Nom_de_la_categorie = models.CharField(max_length=250)
def __str__(self):
return self.Nom_de_la_categorie
class Meta:
verbose_name = ("CategoriePost")
verbose_name_plural =("CategoriePosts")
STATUS = (
(0,"Brouillon"),
(1,"Publier")
)
class Poster(models.Model):
categorie = models.ForeignKey(CategoriePost, on_delete=models.CASCADE, related_name='blog_categorie')
titre = models.CharField(max_length=300, unique=True)
slug = models.SlugField(max_length=300, unique=True)
auteur = models.ForeignKey(User, on_delete=models.CASCADE, related_name='blog_posts')
contenue = RichTextField(blank=True, null=True, config_name='default')
status = models.IntegerField(choices=STATUS, default=0)
image = models.ImageField(upload_to='media/', height_field=None, width_field=None, max_length=100,)
date_publication = models.DateTimeField(default=timezone.now)
date_creation = models.DateTimeField(default=timezone.now)
date_mise_a_jour = models.DateTimeField(default=timezone.now)
def save(self, *args, **kwargs):
self.slug = slugify(self.titre)
super(Poster, self).save(*args, **kwargs)
def get_absolute_url(self):
return reverse("blog:Post_detail",
args=[self.slug])
class Meta:
ordering = ('-date_publication',)
verbose_name = ("Poster")
verbose_name_plural =("Posters")
def __str__(self):
return self.titre
{% block content %}
<header class="masthead">
<div class="overlay"></div>
<div class="container">
<div class="row">
<div class=" col-md-8 col-md-10 mx-auto">
<div class="site-heading">
<h3 class=" site-heading my-4 mt-3 text-white">Welcome to my blog.</h3>
</p>
</div>
</div>
</div>
</div>
</header>
<div class="container">
<div class="row">
<!-- Blog Entries Column -->
<div class="col-md-8 mt-3 left">
{% for Poster in Posterlist %}
<div class="card mb-4">
<div class="card-body">
<h2 class="card-title">{{ Poster.titre }}</h2>
<p class="card-text text-muted h6">{{ Poster.auteur }} | {{ Poster.date_publication}} </p>
<p class="card-text">{{Poster.contenue|slice:":200" }}</p>
<a href="{% url 'Post_detail' Poster.slug %}" class="btn btn-primary">Read More →</a>
</div>
</div>
</div>
{% endfor %}
</div>
</div>
{% endblock %}
когда я сохраняю give в базе данных через таблицу администратора, все идет хорошо, но когда я хочу отобразить give save в html файле для просмотра, страница остается пустой и ничего не отображается
В вашем views
необходимо model = Poster
:
class PosterList(ListView):
model = Poster
queryset = Poster.objects.all()
template_name = 'blog.html'
в вашем html
вам нужно the_model_name_list
:
{% for poster in poster_list %}
<h2 class="card-title">{{ poster.titre }}</h2>
{% endfor %}