如何在Django中上传照片

时间:2016-04-09 18:34:30

标签: python html django image model

我在这里遇到一个小问题。 我想在制作中上传一张产品的照片,并希望在主页上显示这张照片。

以下是Product中的models.py课程:

class Produto(models.Model):

    nome = models.CharField(max_length=255, null=False)
    foto = models.ImageField(upload_to='mywebsite/staticfiles/static')


    def __unicode__(self):
        return "%s" % (self.nome)

在我的settings.py中,我设置了以下变量:

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = '/static/'

# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'),
)

在我的htm页面中:

{% for produto in produtos %}
    <li>
        <div class="col-md-3 biseller-column">
            <a href="single.html">
                <img src="{{produto.foto.url}}"/>
            </a>
            <div class="ad-info">
                <h5>{{produto.nome}}</h5>
            </div>
        </div>
    </li>
{% endfor %}
</ul>

所以,我上传了,当我通过网络浏览器上传时,照片出现在staticfiles / static上,但不在网站上。在网页中出现以下内容:

Capture of my screen

有人可以帮助我吗?

非常感谢你。

2 个答案:

答案 0 :(得分:1)

看起来您尚未设置媒体根目录或添加了网址配置,因此无法提供服务。您可以在the documentation

查看如何设置这些内容

答案 1 :(得分:1)

问题出在您的模板中。 请尝试使用{{ produto.foto.image.url }}代替{{ produto.foto.url }}来访问图片文件网址。