samedi 28 février 2015

Django Imagefield url does not contain MEDIA_ROOT

I have a model with a ImageField and created an simple Upload Form via CreateForm. I have a simple ListView to show the images (logos).


Upload works fine, Iterating the logos works. Property logo.url is missing but instead it is logo.media. Unfortunately media does not contain the whole path, MEDIA_ROOT is missing. What am I doing wrong here?


models.py:



class Logo(models.Model):
media = models.ImageField(upload_to='uploads')


views.py:



class LogoManager(CreateView):
model = Logo
template_name = 'polls/upload.html'
success_url = '/logos/'

class LogoIndex(ListView):
model = Logo
template_name = 'polls/logos.html'


upload.html:



{% block title %} Upload Form {% endblock %}
{% block content %}

<form id="my_form" action="" method="post" enctype="multipart/form-data">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save Changes" />
</form>
<br />
<a href="{% url 'polls:index' %}">Back</a>
{% endblock %}


logos.html:



{% block content %}
{% if object_list %}
<ul>
{% for image in object_list %}
<li><img src="{{ image.media }}" width="320" height="200"/></li>
{% endfor %}
</ul>
{% else %}
<p>No Logos are available.</p>
{% endif %}
<br />
{% endblock %}


Output is:



<li><img src="uploads/IMG_5106.JPG" width="320" height="200"/></li>

Aucun commentaire:

Enregistrer un commentaire