1

我有一个模型,用户将图片上传到 s3 存储桶。

class Curso(models.Model):
    titulo = models.TextField()
    foto = models.ImageField(upload_to='media/cursos') #this goes to mybucket/media/cursos
    alt = models.TextField()
    ...

它可以很好地上传到 s3 存储桶,但是图像的源存储在数据库中,例如

"media/cursos/theimage.jpg"

我想在这样的模板中显示来自对象的图像

 <img class='curso__tarjeta--imagen' loading="lazy" src="{{curso.foto}}" alt={{curso.alt}}">

它不起作用,因为路径不是我的 s3 存储桶的整个路径

我的静态标签指向我的 s3 存储桶。我的问题是:有没有办法做这样的事情->

{% load static %}
<img class='curso__tarjeta--imagen' loading="lazy" src="{%static%}{{curso.foto}}" alt={{curso.alt}}">

我正在尝试这样,但它不起作用!我应该怎么办?帮助!并提前谢谢你

4

1 回答 1

1

感谢另一个stackoverflow答案,我终于明白了

<img class='curso__tarjeta--imagen' loading="lazy" src={{curso.foto.url}} alt="{{curso.alt}}">

并将其添加到 settings.py

AWS_QUERYSTRING_AUTH = False
于 2021-08-09T23:00:35.557 回答