Django中的图像表单存在问题。 图片上传正常,并显示在管理页面中。 但是,如果我想在模板中使用此图像,或者通过管理控制台中的链接直接访问,收到404错误,为什么?
Django:2.1.1 Python:3.6.6
models.py
from art.settings import STATICFILES_DIRS
import os
def get_image_path(instance, filename):
return os.path.join(STATICFILES_DIRS[0], 'collections', filename)
class ArtCollections(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
class ImagesList(models.Model):
collection_id = models.ForeignKey(ArtCollections, on_delete=models.CASCADE, default=1)
images = models.ImageField(upload_to=get_image_path, blank=True, null=True)
从管理控制台上传文件,并在正确的文件夹exx /static/image.jpg中进行操作 文件存在:
-rw-r--r-- 1 www-data www-data 438930 Dec 2 /static/image.jpg
但仍然得到404
P.S。在文件夹上提供全额赠款,对于Apache也是如此
范本示例:
{% block content %}
{{ count }}
{% for image in collection_images %}
<img src="{{ image.images }}">
{% endfor %}
{% endblock %}
答案 0 :(得分:0)
您需要在模板中图像的末尾添加url
:
{% block content %}
{{ count }}
{% for image in collection_images %}
<img src="{{ image.images.url }}">
{% endfor %}
{% endblock %}