【问题标题】:Django. keep getting 404 on my images, don't know if i set up the paths right姜戈。我的图像上不断出现 404,不知道我是否设置了正确的路径
【发布时间】:2019-05-20 14:33:27
【问题描述】:

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

但现在我从 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)

´´´´

我的设置.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')

'''' ''''

我的意见.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>

【问题讨论】:

    标签: python django static django-templates media


    【解决方案1】:

    当您在模板中显示媒体(上传的)文件时,您需要在文件 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 %}
    

    【讨论】:

    • 谢谢你,先生,我已经通过“新波士顿”YouTube 频道了解到,它有点旧,下一步我想在同一个列表中添加视频并在带来外键(详细模板)和身份验证用户之后。您是否推荐任何教程或文档是最好的?
    • 你知道官方的 Django 文档非常好,结构很好,有很多例子。花大部分时间阅读它们而不是寻找教程。但除此之外,simpleisbetterthancomplex.com 也有不少很好的例子。
    猜你喜欢
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2020-03-05
    相关资源
    最近更新 更多