Django - изображение не отображается на веб-странице 404 не найдено - PullRequest
0 голосов
/ 18 марта 2019

На странице профиля не отображается изображение профиля, которое было загружено с помощью функции upload_to в models.py

def upload_to(instance, filename):
    return 'users/%s/%s' % (instance.user, filename)

ImageField -> img = models.ImageField(upload_to=upload_to, blank=True, db_index=True)

URL-адрес, используемый для user_profile:

url(r'^users/(?P<username>[\w-]+)/$', views.user_profile, name='profile'),

html-страница для user_profile.html выглядит примерно так

<li>
    I am The Image
    <img src="{{ image }}" alt="img">
</li>

views.py ---->

@login_required
def user_profile(request, username):
    image = request.user.profile.img
    image = str(image)
    image = image.strip('users/%s' % username)
    return render(request, 'user_profile.html', {'username': request.user.username,
                                                 'image': image})

URL-адрес, отображаемый в консоли сервера:

/users/rony/f4098984_Kgo0lqi.jpg HTTP / 1.1 "404 2665

в приведенном выше блочном коде при нажатии на ссылку на изображение jpg, упомянутое выше, изображение доступно по указанной ссылке, но изображение остаетсяне отображается на веб-странице

ссылка на выпуск github приведена ниже. https://github.com/bikirandas/OmexOnline/issues/2

1 Ответ

0 голосов
/ 20 марта 2019

Я нашел решение для вышеуказанной проблемы, которую я разместил.

Измените код HTML, как показано ниже.

<img src="{{ MEDIA_ROOT }}{{ image.url}}" alt="Profile Picture">

и views.py , как показано ниже

def user_profile(request, username):
    image = request.user.profile.img
    # image = str(image)
    # image = image.strip('users/%s' % username)
    return render(request, 'user_profile.html', {'username': request.user.username,
                                                 'image': image})

добавить + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) к urls.py

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