姜戈。一直在我的图片上收到 404,不知道我是否设置了正确的路径

Django. keep getting 404 on my images, don't know if i set up the paths right

我正在尝试在测试网站上显示图片,我之前已经做过

但现在我从 3 天前开始尝试了新旧解决方案,并且在我的图像上不断出现 404。我还没有设置任何静态,只是媒体文件。

那些是我的models.py

从 django.db 导入模型

´´´´

     class Produto (models.Model):
        nome = models.CharField(max_length=50)
        preço = models.DecimalField(max_digits=5, decimal_places=2)
        foto = models.ImageField(blank=True, upload_to='media')

def __str__(self):
    return '%s %s' % (self.nome, self.foto)

´´´´

我的settings.py

´´´´

    STATIC_URL = '/static/'
    STATICFILES_DIRS = (
          os.path.join(BASE_DIR, 'static'),
    )
    STATIC_ROOT = 'JR/JR/static/produtos'
    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

´´´´ ´´´´

我的views.py

       from django.shortcuts import render
       from.models import Produto


       def produtolist(request):
            list = Produto.objects.all()
            return render(request, 'produtos.html', {'list': list})

´´´´ 以及带有错误和路径的图片: error

和我的模板

<html>
<head>
  <meta charset="utf-8">
  <title>Produtos</title>
<!--   ------------links       -->
  <link rel="stylesheet" href="{% static 'style.css' %}"

</head>

<body>
  <h1>perdida</h1>
  <img src="/media/perdida.jpg" >
   <div class="cats">
  <ul>
      {% for Produto in list %}
          <li> {{Produto.nome}} - {{Produto.preço}}</li>
          <img src="{{ Produto.foto }}" alt="{{Produto.nome}}" />
      {% endfor %}
  </ul>
</div>
</body>

当您在模板中显示媒体(上传的)文件时,您需要自己在文件 url 之前手动添加 MEDIA_URL。您可以使用模板标签 get_media_prefix:

{% load static %}
...
<img src="{% get_media_prefix %}{{ Produto.foto }}" alt="{{ Produto.nome }}"/>

请注意,通过在您的 ImageField 中添加 upload_to="media",您的图片将上传到 /media/media/ 目录,因为该上传路径是 相对的 MEDIA_ROOT.

如果您需要在多个地方使用它,比如在您的 for 循环中,通过执行以下操作保存一些 python 查找:

{% load static %}
{% get_media_prefix as MEDIA_PREFIX %}
{% for Produto in list %}
    <img src="{{ MEDIA_PREFIX }}{{ Produto.foto }}"/>
{% endfor %}