python - usar - load file django
Django-Display ImageField (3)
Acabo de comenzar a usar django y no he encontrado mucha información sobre cómo mostrar un campo de imagen, así que hice esto:
modelos.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'')
vistas.py
def image(request):
carx = Car()
variables = RequestContext(request,{
''carx'':carx
})
return render_to_response(''image.html'',variables)
imagen.html
{% extends "base.html" %}
{% block content %}
<img src=carx />
{% endblock %}
Ya guardo una imagen desde el terminal y sé que está ahí, también si hago esto en image.html:
{% block content %}
{{ carx }}
{% endblock %}
La salida es: objeto de coche.
¿Alguien puede decirme dónde está mi error?
Muchas gracias.
Gracias a todos, lo soluciono de esta manera.
vistas.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)
imagen.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'',)
Ahora sé que carx.photo.url recupera la ruta absoluta del archivo y su única materia para cargar como archivo estático.
También puede hacer uso de la URL estática en Settings.py. Cree un directorio, por ejemplo, "Cargas", en el directorio Estático de su aplicación. También cambia esto en tu modelo en models.py
.
Usa el siguiente código:
<img src="{% static carx.photo.url %}" />
Un ImageField
contiene un atributo url
, que puede usar en sus plantillas para representar el HTML correcto.
{% block content %}
<img src="{{ carx.photo.url }}">
{% endblock %}