изображения из медиа файла не будут отображаться в шаблоне django

Я новичок в django, и я играю с загрузкой картинок, а затем показываю их. ... Что ж Пытается чтобы отобразить их.

Всякий раз, когда я пытаюсь отобразить изображение из шаблона, я просто получаю значок ссылки неработающего изображения.

Я использую сервер 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)

Прямо сейчас я только что использовал администратора для загрузки изображений. И это, кажется, работает нормально, они идут туда, где я ожидаю

Но когда я пытаюсь их отобразить:
Шаблон

<!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>

Я получаю сломанную иконку для каждого.
Исходный код браузера показывает мне:

<!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>

это имеет смысл, у меня есть только одна фотография.
и если я скопирую одну из жестких ссылок и вставлю ее в другой HTML-файл ... это сработает

Ответы на вопрос(2)

попробуйте это:

Settings.py

SITE_ROOT = os.path.realpath(os.path.dirname(__file__))
MEDIA_ROOT = os.path.join(SITE_ROOT, 'static')
MEDIA_URL = '/static/'
STATIC_ROOT = os.path.join(SITE_ROOT, 'statics')
STATIC_URL = '/statics/'

Urls.py

# somebody import this from settings
SITE_ROOT = os.path.realpath(os.path.dirname(__file__))  
urlpatterns += patterns('', 
    url(r'^static/(?P<path>.*)

html просмотреть файл * .html:

<img src="{{ MEDIA_URL }}img/content_top_edit_form.png">

это означает, что у нас есть IMG папка в статической папке. в вашем случае вы можете изменить это с помощью

если вы видите, что ваш браузер HTML должен выглядеть следующим образом:

<img src="/static/img/content_top_edit_form.png">
,'django.views.static.serve', {'document_root': os.path.join(SITE_ROOT, 'static')}) )

html просмотреть файл * .html:

<img src="{{ MEDIA_URL }}img/content_top_edit_form.png">

это означает, что у нас есть IMG папка в статической папке. в вашем случае вы можете изменить это с помощью

если вы видите, что ваш браузер HTML должен выглядеть следующим образом:

<img src="/static/img/content_top_edit_form.png">

всегда это

MEDIA_URL = '/media/'

Н

MEDIA_URL = 'http://127.0.0.1:8000/media/' 

...несмотря на#'http://127.0.0.1:8000/media/' пишется прямо рядом с ним

working img link выглядит так:

<img src="/media/images/photo_1.JPG" />

тебе определенно нужно:

static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

в файле URL тоже

ВАШ ОТВЕТ НА ВОПРОС