我有这段代码,其中partner.logo是合作伙伴模型中的ImageField。
{% for m in matches %}
<img src="{{ m.partner.logo }}" alt="" />
<h2><a href="{{ m.partner.url }}">{{ m.partner.name }}</a></h2>
<p>{{ m.reasons }}</p>
<p>{{ m.partner.profile }}</p>
{% endfor %}
现在,Django文档说如果你去m.partner.logo.url,你会得到一个文件的URL。但是,我得到的只是
<img src="/Users/shinichi/Dropbox/source/blastoise/uploads/road-sky-clouds-cloudy.jpg" alt="" />
这实际上是我从m.partner.logo获得的字符串。这不是一个URL,它没有帮助!我期待像http://127.0.0.1:8000/uploads/road-sky-clouds-cloudy.jpg这样的东西。我错过了什么吗?
答案 0 :(得分:0)
@domino指出MEDIA_URL
和MEDIA_ROOT
上的settings.py
可能会遇到一些问题(请查看here)。我给你写了一个例子here。在引用徽标URL时,还有一个重要的细节,您可能需要执行this之类的操作。我的意思是:
{% for partner in partners %}
<img src="{{ partner.logo.url }}" alt="" />
<h2><a href="{{ partner.logo.url }}">{{ partner.logo }}</a></h2>
{% endfor %}
请务必在urls.py
上添加these行,以帮助您在开发时提供media
资源,它总是有所帮助。
希望它可以帮助你交配。
答案 1 :(得分:0)
这实际上取决于你在proj / settings.py文件中设置MEDIA_ROOT
的内容。在models.py文件中,您可以在upload_to
中指定FileField
参数。这是documentation。
您可以指定其他地方。最受欢迎的是Amazon S3。我将模板设置为阅读
<a href="https://s3-us-west-2.amazonaws.com/fsbo-facebook/{{ house.photo }}" data-lightbox="{{ house.title }}" data-title="{{ house.title }}"><img src="https://s3-us-west-2.amazonaws.com/fsbo-facebook/{{ house.photo }}" alt="{{ house.title }}"></a>
希望这有帮助。