Django 1.9.7Kann nicht mit Bildern von einem Benutzer während der Entwicklung hochgeladen bewältigen
Können Sie mir helfen zu bewältigen Benutzer Bilder hochgeladen. Ich habe es geschafft, Bilder zu speichern.
Aber ich kann sie nicht zeigen. Bis jetzt ist das alles über Entwicklung Bühne (nicht Produktion).
Das unterste Codebeispiel zeigt den HTML-Code, wenn ich "Seitenquelle anzeigen" in Chrome ausführe. Dieser "src ="/home/michael/workspace/... "ist ein absoluter Pfad. Er funktioniert, wenn ich einen solchen HTML erzeuge und ihn ohne einen Webserver im Browser öffne.
Aber ich lasse den Django Dev-Server laufen , wird das Bild nicht zeigen.
Könnten Sie einen Kick geben Sie mir hier.
/pharchive/pharchive/settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, '../media/')
MEDIA_URL = os.path.join(BASE_DIR, '../media/')
/pharchive/pharchive/urls.py
from django.conf.urls.static import static
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
/pharchive/masterdocument/models.py
class Image(AbstractDocument):
image = models.ImageField(upload_to='images/%Y/%m/%d')
/pharchive/masterdocument/views.py
class ImageDetailView(DetailView):
model = Image
/pharchive/masterdocument/templates/masterdocument /image_detail.html
<html>
<img src="{{ object.image.url }}"/>
</html>
view-source: http://localhost:8000/images/6/
<html>
<img src="/home/michael/workspace/pharchive/media/images/2016/06/29/Screenshot_from_2016-02-23_205205.png"/>
</html>
Wenn Sie nur über die Entwicklung besorgt sind, wie Sie gesagt haben, dann wird das Hinzufügen von 'file: //' vor der URL es für eine Weile "arbeiten" lassen. – Brian
Nun, ich bin jetzt in der Entwicklungsphase. Was Sie sagen, ist Hardcoding. In der Entwicklung wird es in Zukunft nicht funktionieren. – Michael
Genau das meinte ich mit "Arbeit" ja. Ich werde es nicht empfehlen nach den nächsten 10 Minuten. – Brian