В проекте Django загруженный img не отображается на сайте
Я просто хочу отобразить картинку профиля.Img загружается успешно, но не показывает img.Но если я пытаюсь в админ панели, то показывает img. Вот мой код index.html
{% extends 'Login_app/base.html' %}
{% block body_block %}
{% if user.is_authenticated %}
<p>Hi {{ user_basic_info.username }},</p>
<p>Your Email {{ user_basic_info.email }}</p>
<p><a href="{{user_basic_info.facebook_id }}"> Facebook Profile </a></p>
<img src="/media/{{ user_more_info.profile_pic }}" width="200px">
{% else %}
<div class="alert alert-primary"></div>You are not logged in!!</div>
{% endif %}
{% endblock %}
Вот мой setup.py media setting
import os
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # This is a tuple
MEDIA_URL = '/media/'
Вы должны добавить .url
после фотографии профиля.
Попробуйте это:
<img src="/media/{{ user_more_info.profile_pic.url }}" width="200px">
ИЛИ
В Models.py
определите get_absolute_url()
метод для присоединения к медиа-каталогу:
def get_absolute_image(self):
return os.path.join('/media', self.image.name)
И в templates
сделайте следующее:
{% for post in posts %}
<img src="{{ post.get_absolute_image }}" width="200px">
{% endfor %}
p.s.- здесь пост - название модели
установка джанго
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
представления джанго
def single_article(request, page, slug):
article = get_object_or_404(Article, slug=slug)
return render(request, "article/single_article.html", locals())
шаблон джанго
<`enter code here`img class="d-block w-100 img-responsive" style="height: 100%" src="{{ article.picture.url }}" alt="{{ article.title }}"
> Blockquote
вам не нужно передавать /media/ или использовать .url для получения из db
{% extends 'Login_app/base.html' %}
{% block body_block %}
{% if user.is_authenticated %}
<p>Hi {{ user_basic_info.username }},</p>
<p>Your Email {{ user_basic_info.email }}</p>
<p><a href="{{user_basic_info.facebook_id }}"> Facebook Profile </a></p>
<img src="{{ user_more_info.profile_pic.url }}" width="200px">
{% else %}
<div class="alert alert-primary"></div>You are not logged in!!</div>
{% endif %}
{% endblock %}
это будет работать, если все еще изображение не загружается добавить вам просмотров
Попробуйте добавить этот код в urls.py проекта:
urlpatterns = [
...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)