Python Django-显示图像字段

Python Django-显示图像字段,python,django,imagefield,Python,Django,Imagefield,我刚开始使用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') vi

我刚开始使用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)
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=carx />
{% endblock %}
{% extends "base.html" %}

{% block content %}
     <img src="{{ MEDIA_URL }}{{ carx }}"/>
{% endblock %}
输出为:Car对象

谁能告诉我我的错误在哪里


非常感谢。

一个
ImageField
包含一个
url
属性,您可以在模板中使用该属性来呈现正确的HTML

{% block content %}
    <img src="{{ carx.photo.url }}">
{% endblock %}
{%block content%}
{%endblock%}

多亏了大家,我用这种方式修复了它

views.py

def image(request):
    carx = Car()
    variables = RequestContext(request,{
        'carx':carx
    })
    return render_to_response('image.html',variables)
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=carx />
{% endblock %}
{% extends "base.html" %}

{% block content %}
     <img src="{{ MEDIA_URL }}{{ carx }}"/>
{% endblock %}

现在我知道carx.photo.url检索文件的绝对路径,它是作为静态文件加载的唯一问题

您还可以使用Settings.py中的静态URL。在应用程序的静态目录中创建一个目录,例如“Uploads”。也可以在
models.py
中的模型中更改此选项

使用以下代码:

<img src="{% static carx.photo.url %}" />


假设有一台服务器配置为提供来自
站点媒体的内容,无论如何。我在settings.py STATIC\u URL='/Users/gcarranza/PycharmProjects/django\u bookmarks/site\u media/'STATICFILES\u DIRS=('/Users/gcarranza/PycharmProjects/django\u bookmarks/site\u media'))这更像是一个配置了实际web服务器的问题——展示了如何在开发过程中从Django为它们提供服务,但在生产环境中这不是一个好主意。虽然这可以工作,但您不应该将用户文件上载到/static,而应该上载到/media文件夹中。