2016-05-22 13 views
0

Bitte sagen Sie, warum, wenn ich Bild über Admin speichern kann ich es nicht sehen? Das Bild wird in der Datenbank gespeichert, aber ich kann es nicht sehen, wenn ich einfach den Link mit dem gespeicherten Bild im Admin-Bereich drücke. Ich bekomme die Seite nicht gefunden (404), weil es keine Bilddatei in diesem Pfad gibt, aber wenn ich die Datei in den Ordner in meinem Projekt mit demselben Pfad einfüge, kann ich es sehen. Daher ist der Pfad für statische Dateien ordnungsgemäß definiert.
Ich habe Bildfeld in Modell:Speichern von Bildern in statischen/Medien-Ordner über Django Admin-Problem

photo = models.ImageField(upload_to = 'photo/', blank=True)` 

Einstellungen:

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static") 
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"), 
) 
MEDIA_ROOT = os.path.join(BASE_DIR, '..', 'static','media') 
MEDIA_URL = '/static/media/' 

und so scheint es, es in meinem Projekt statischen Ordner speichern sollte, aber es funktioniert nicht.

meine Projektstruktur:

+0

Haben Sie 'MEDIA_ROOT' Pfad festgelegt? User-upload Dateien normalerweise in/media/directory gespeichert, nicht/static/ – DiA

+0

ja, MEDIA_ROOT = os.path.join (BASE_DIR, '..', 'statisch', 'media') – Andriy

Antwort

1

Medien root so sein sollte -

MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static','media') 

folgende Dinge Stellen Sie sicher - Es gibt einen Ordner 'statisch' in dem Ordner, in dem Ihr Projekt existiert namens existiert. Es sollte einen Ordner namens 'media' enthalten.

UPDATE: Ich denke, Ihre Ordnerstruktur ist falsch. Folgende sollte die Struktur nach Ihren Einstellungen sein -

-static       // MEDIA_ROOT and STATIC_ROOT setting 
    -media       // MEDIA_ROOT setting 
-project(src) 
    -app1 
     -models.py 
     -views.py 
     -... 
    -static      // STATICFILES_DIRS setting 
+0

Ich ersetze Pfad mit deinem aber Nichts hat sich geändert. Ich hatte http://127.0.0.1:8000/static/media/photo/img.jpg in meinem Browser und dies ist der richtige Pfad zur Datei, aber Datei aus irgendeinem Grund nicht dort speichern. – Andriy

+0

Vielleicht hast du recht, aber ich denke meine Struktur ist auch möglich. Was kann ich in meinem Fall tun? – Andriy

+1

ändern Sie die Einstellung zu MEDIA_ROOT = os.path.join (BASE_DIR, 'statisch', 'Medien') – RA123