ładowanie obrazka do html załadowanego do folderu w projekcie

0

mam taki widok w view.py

def image(request, d_image_id):
    d_image = get_object_or_404(DImage, id=dummy_image_id).image_url.url
    context = {'d_image': d_image}
    return render(request, 'webstore/image.html', context)

urlpatterns = [
    # image
    url(r'^image/(?P<d_image_id>[0-9]+)/$', views.image),
    # url(r'^image/(?P<d_image_id>[0-9]+)/$', views.image, name='image'),
]

model:

class DImage(models.Model):
    image_url = models.ImageField(upload_to='media/')

obrazek leci do katalogu /media w moim projekcie. Wszystko działa cacy.

Problem zaczyna się jak chcę ten obrazek wyciągnąć po jego id, podaje prawidłową ściężkę, ale nie wyświetla obrazka :(

mój html:

 
<img src="media/{{ d_image }}" alt="{{ d_image }}">

ścieżkę podaje prawidłowo do follderu czyli /media/nazwa_obrazka.jpg ale go nie wyświetla :/

nawet jak podam dosłowną ścieżkę :/

0

Gdzie to uruchamiasz? Czy jest uruchomione w runserver django?
Czy na serwerze gdzie statici serwujesz nginx? itp?

https://docs.djangoproject.com/en/1.10/howto/static-files/#serving-files-uploaded-by-a-user-during-development

0

tak u siebie lokalnie w pycharm i nie wiem jak mam podać te ścieżki, mogę podać jak wygląda katalog projektu. Bo juz z tym męczę się od dłuższego czasu. Pomożesz?

0

a to nie na być media root, a nie static root do ustawienia tego?

0

W modelu masz ustawione

upload_to='media/'

więc Django wie już do jakiego folderu ma uploadować obrazek i że ten folder ma być zapisany w URL'u. Nie możesz zatem w HTML'u podawać ścieżki:

media/{{ d_image }}

bo ona ma już w sobie folder media i wynikowa postać URL'a wygląda następująco:

media/media/nazwa_obrazka.jpg

czyli powtarzasz media. W pliku settings.py ustaw:

ENV_PATH = os.path.abspath(os.path.dirname(__file__))
MEDIA_ROOT = os.path.join(ENV_PATH, 'media/')

1 użytkowników online, w tym zalogowanych: 0, gości: 1