我刚开始使用django,我还没有找到很多关于如何显示imageField的信息,所以我做了这样的工作:
models.py
class Car(models.Model):
name = models.CharField(max_length=255)
price = models.DecimalField(max_digits=5, decimal_places=2)
photo = models.ImageField(upload_to='site_media')views.py
def image(request):
carx = Car()
variables = RequestContext(request,{
'carx':carx
})
return render_to_response('image.html',variables)image.html
{% extends "base.html" %}
{% block content %}
<img src=carx />
{% endblock %}我已经保存了一个图像,因为终端,我知道在那里,如果在image.html中也这样做:
{% block content %}
{{ carx }}
{% endblock %}输出为: Car对象
谁能告诉我我的错误在哪里?
非常感谢。
发布于 2013-07-25 07:07:23
ImageField包含一个url属性,您可以在模板中使用该属性来呈现适当的HTML。
{% block content %}
<img src="{{ carx.photo.url }}">
{% endblock %}发布于 2016-12-14 05:08:16
您还可以使用Settings.py中的静态URL。在应用程序的静态目录中创建一个目录,例如"Uploads“。还要在models.py中的模型中更改此设置。
使用以下代码:
<img src="{% static carx.photo.url %}" />发布于 2013-07-25 16:48:13
感谢所有人,我以这种方式修复它。
views.py
def image(request):
carx = Car.objects.all()
for mycar in carx:
MyCar = mycar.photo.url
variables = RequestContext(request,{
'carx':MyCar
})
return render_to_response('image.html',variables)image.html
{% extends "base.html" %}
{% block content %}
<img src="{{ MEDIA_URL }}{{ carx }}"/>
{% endblock %}settings.py
MEDIA_URL = '/Users/gcarranza/PycharmProjects/django_bookmarks/'
STATIC_URL = '/Users/gcarranza/PycharmProjects/django_bookmarks/site_media/'
STATICFILES_DIRS = (
'/Users/gcarranza/PycharmProjects/django_bookmarks/site_media',)现在我知道了carx.photo.url检索文件的绝对路径,它唯一的问题就是作为静态文件加载。
https://stackoverflow.com/questions/17846290
复制相似问题