Django中的图片问题

时间:2018-12-02 19:36:17

标签: python django

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 %}

1 个答案:

答案 0 :(得分:0)

您需要在模板中图像的末尾添加url

{% block content %}
  {{ count }}
  {% for image in collection_images %}
      <img src="{{ image.images.url }}">
  {% endfor %}
{% endblock %}