Как мне получить мой HTML-шаблон для правильной ссылки на загруженный медиа-контент? - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь сослаться на загруженные мемы в своем веб-приложении Django (режим разработки). Я хочу, чтобы "account" ссылался на "media / memes / images / {insert img}" но он ссылается на "/ account / media / memes / images / {insert img}" .

Ниже представлена ​​функция аккаунта в views.py:

.
def account(request):
    user = request.user
    if user.is_authenticated:
        user_posts = Meme.objects.filter(author=request.user).order_by('-published')
    else:
        return _logout(request, timed_out=True)

    files = [m.file for m in list(user_posts)]
    #print("filenames to memes posted by user: ", files)
    return render(request, "account.html", context={"filenames": files})

Ниже account.html:

{% extends "layout.html" %}
    {% block content %}


<div class="row">
    {% for filename in filenames %}
        <br>
        <div class="col s12 m6 l4">
          <div class="card-content">
            <img src="media/{{ filename }}" width="80%" height="80%"></img>
          </div>
          </div>
    {% endfor %}
</div>

{% endblock content %}

Ниже вывод:

[07/May/2019 21:26:40] "GET /account/ HTTP/1.1" 200 1563
    Not Found: /account/media/memes/images/michaeljordan.jpg
    [07/May/2019 21:26:40] "GET /account/media/memes/images/michaeljordan.jpg HTTP/1.1" 404 3418

Ответы [ 2 ]

1 голос
/ 08 мая 2019

Ваша проблема не связана с Джанго. Исправить: src="media/ => src="/media/

Пропущенная начальная косая черта означает «начиная с текущего URL». Начальная косая черта означает «от корня».

Хотя это изменение исправляет вашу проблему, это не путь Джанго. Я предлагаю вам настроить MEDIA_URL и ссылаться на эти изображения как:

src="{{ m.file.url }}"`

в вашем случае MEDIA_URL = '/media/'

0 голосов
/ 08 мая 2019

Вам необходимо включить следующий код в настройку

MEDIA_URL = '/media/'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...