图像并非突然在Django中加载

时间:2018-07-01 09:03:54

标签: django python-3.x django-models django-templates

我正在尝试使用django框架构建一个基本博客。在帖子中,我在Post模型中具有图片字段。前几个帖子已正确添加。但是添加分页后,图像不会被加载。无论我添加什么图像,它都不会加载到屏幕上。

models.py:

    import os
from django.conf import settings
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
from django.db import models



class Post(models.Model):
    STATUS_CHOICES = (
        ('draft', 'Draft'),
        ('published', 'Published'),
    )
    poster = models.ImageField(upload_to=settings.MEDIA_ROOT);
    title = models.CharField(max_length=250)
    slug = models.SlugField(max_length=250,
                            unique_for_date='publish')
    author = models.ForeignKey(User,
                               on_delete=models.CASCADE,
                               related_name='blog_posts')
    body = models.TextField()
    publish = models.DateTimeField(default=timezone.now)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    status = models.CharField(max_length=10,
                              choices=STATUS_CHOICES,
                              default='draft')

    class Meta:
        ordering = ('-publish',)

    def __str__(self):
        return self.title

    def get_absolute_image(self):
        return os.path.join('/media', self.poster.name)

views.py:

    from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage
from django.shortcuts import render,get_object_or_404
from .models import Post
# Create your views here.

def post_list(request):
    posts_list = Post.objects.filter(status='published')
    paginator = Paginator(posts_list, 2)  # 3 posts in each page
    page = request.GET.get('page')
    try:
        posts = paginator.page(page)
    except PageNotAnInteger:
        posts = paginator.page(1)
    except EmptyPage:
        posts = paginator.page(paginator.num_pages)
    return render(request,'blog/post/list.html',{'page':page,'posts':posts})

模板:

    {% extends "blog/base.html" %}
{% block title %}My Blog{% endblock %}
{% block content %}

          <h1 class="my-4">BlogSpot
            <small>Find Everything</small>
          </h1>
{% for post in posts %}
      <div class="row">

        <div class="col-md-8">

        <!-- Blog Entries Column -->
          <!-- Blog Post -->
          <div class="card mb-2">
            <img class="card-img-top" src="{{ post.get_absolute_image }}" alt="Card image cap">
            <div class="card-body">
              <h2 class="card-title">{{ post.title }}</h2>
              <p class="card-text"></p>
              <a href="#" class="btn btn-primary">Read More &rarr;</a>
            </div>
            <div class="card-footer text-muted">
              {{ post.publish }} by {{post.author}}
            </div>
          </div>
        </div>
          </div>

{% endfor %}
<div class="pagination">
<span class="step-links">
{% if posts.has_previous %}
<a href="?page={{ posts.previous_page_number }}">Previous</a>
{% endif %}
<span class="current">
Page {{ posts.number }} of {{ posts.paginator.num_pages }}.
</span>
{% if posts.has_next %}
<a href="?page={{ posts.next_page_number }}">Next</a>
{% endif %}
</span>
</div>
{% endblock %}

这些是我使用过的文件。突然,当我添加新帖子时,图像未加载。该如何解决?

0 个答案:

没有答案