首页 > 解决方案 > 无法在模板中显示使用 ImageField 上传的图像

问题描述

所以,我有一个博客应用程序,当我想使用 ImageField 文件浏览器将封面图片添加到文章中时,我的图片名称在 PyCharm 中变红并且没有显示在模板中。但是当我检查它的 HTML 代码源时,图像的路径是正确的。这是我的代码:

articles.html

<a href="/"><img src="{{ article.image.url }}" class="image"/></a>

settings.py


STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

MEDIA_URL = '/media/'

models.py

class Article(models.Model):
    title = models.CharField(max_length=100)
    description = models.CharField(max_length=200)
    content = HTMLField()
    # image = models.CharField(max_length=2000)
    image = models.ImageField(upload_to='media')
    category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True)
    post_date = models.DateTimeField(auto_now_add=True)
    slug = models.SlugField(unique=True, null=True, editable=False)

    def __str__(self):
        return self.title

    def save(self, *args, **kwargs):
        self.slug = latin_slugify(self.title)
        super(Article, self).save(*args, **kwargs)

urls.py

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

标签: pythondjango

解决方案


正是因为DEBUG = False,改变了它的价值来True解决问题。


推荐阅读