2016-05-19 12 views
0

Ich bin neu in Django und ich habe versucht, meine Bilder auf einer Website zu zeigen, die ich baue.Django-Vorlagen: model.image.url erhält relative URL, wie bekommt man die volle Domain-URL?

Auf meinen Vorlagen verwende ich <img src="{{ model.image.url }}" /> und ich bekomme die MEDIA_URL + IMAGE_PATH.

Etwas wie dieses: upload/gallery/zips/thumbnails/zips.png. upload/ ist meine MEDIA_URL.

Wie kann ich meine URL wie folgt aussehen lassen: http://127.0.0.1:8000/upload/gallery/zips/thumbnails/zips.png ohne sie so anhängen zu müssen: <img src="http://127.0.0.1:8000/{{ gallery.thumbnail.url }}" />?

Es tut uns leid, wenn das die dümmste Frage ist, die jemals auf SO gestellt wurde.

<img src="{{ request.get_host }}{{ model.image.url }}" /> 

* Anmerkung - Sie sicherstellen möchten, dass Sie request in Ihrer Vorlage Kontext-Prozessoren haben:

+0

Welches Problem Sie versuchen, damit zu lösen? – marcusshep

+0

Mmm, um auf die Bilder von einem beliebigen Teil meiner Website zuzugreifen, vorausgesetzt, ich habe eine URL wie folgt: '/ gallery/image/show/23 /'. Dann würde die relative URL nicht funktionieren. @marcusshep – gglasses

+0

Sie möchten fast nie eine Domäne hart kodieren. Angenommen, Sie möchten diese App auf einem Produktionsserver bereitstellen. Sie müssten dann jedes "http: //127.0.0.1: 8000 /" auf die IP-Adresse des Produktionsservers ändern. Es wäre besser, eine andere Lösung für Ihr Problem zu finden. – marcusshep

Antwort

0

Sie können Ihre URL Medien mit dem Request-Objekt prepend

'django.template.context_processors.request' 
+0

Vielen Dank, aber es gibt mir tatsächlich: '' und ja ich habe '' django.template.context_processors.request'' auf meinem Projekt/settings.py – gglasses

+0

@glasses Sie haben Ihre 'MEDIA_URL' definiert als' Upload/'. Ändern Sie es in '/ upload /' und es sollte funktionieren (beachten Sie den führenden Schrägstrich) –

+0

fügen Sie einen Schrägstrich nach der Variablen dh @ – marcusshep

Verwandte Themen