imagens do arquivo de mídia não serão exibidas no modelo do django
Eu sou novo no Django e tenho brincado com o upload de fotos e exibi-las. ... bemtentando para exibi-los.
Sempre que tento exibir a imagem de um modelo, acabo de receber o ícone de link da imagem quebrada.
Estou usando o servidor sqlite3
settings.py
ROOT_DIR = os.path.dirname(os.path.dirname(__file__))
def location(f):
return os.path.join(ROOT_DIR, f)
MEDIA_URL = 'http://127.0.0.1:8000/media/'
MEDIA_ROOT = location('media/')
models.py
class Image(models.Model):
image = models.ImageField(upload_to = 'images/')
views.py
from imageupload.settings import MEDIA_ROOT, MEDIA_URL
def main(request):
imgs = Image.objects.all()
return render_to_response('index.html', {'images': imgs, 'media_root': MEDIA_ROOT, 'media_url': MEDIA_URL})
url.py
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
No momento, acabei de usar o administrador para fazer upload de imagens. E isso parece funcionar bem, eles vão para onde eu espero
Mas quando tento exibi-los:
modelo
<!DOCTYPE html>
<html>
<img src="<correct path to project>/media/images/photo_1.JPG" />
{% for img in images %}
<img src="{{ media_root }}{{ img.image.name }}" />
<img src="{{ media_url }}{{ img.image.name }}" />
<img src="{{ img.image.url }}" />
{% endfor %}
</html>
Eu recebo o ícone quebrado para cada um.
O código fonte do navegador me mostra:
<!DOCTYPE html>
<html>
<img src="<correct path to project>/media/images/photo_1.JPG" />
<img src="<correct path to project>/media/images/photo_1.JPG" />
<img src="http://127.0.0.1:8000/media/images/photo_1.JPG" />
<img src="http://127.0.0.1:8000/media/images/photo_1.JPG" />
</html>
isso faz sentido, eu só tenho uma foto enviada.
e se eu copiar um dos hard links e colocá-lo em algum outro arquivo html ... ele funciona