В блоге Django не отображаются изображения

#blogs #python-3.8 #django-3.1

#Блоги #python-3.8 #django-3.1

Вопрос:

Я следовал этому руководству по добавлению изображений в мой блог django (ссылка на учебник: https://www.youtube.com/watch ?v=ygzGr51dbsYamp;list=PLCC34OHNcOtr025c1kHSPrnP18YPB-NFiamp;index=26)

Но когда я публикую сообщение в блоге, изображение не отображается Изображение не отображается

Но изображение сохраняется в папке

Но когда я захожу в панель администратора и нажимаю на сообщение, я вижу это

когда я нажимаю на текущее местоположение, я получаю следующее

введите описание изображения здесь

Это мой settings.py

 import os
from pathlib import Path

# Build paths inside the project like this: BASE_DIR / 'subdir'.

# BASE_DIR = Path(__file__).resolve().parent.parent
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': BASE_DIR / 'db.sqlite3',
        'NAME': 'db.sqlite3',
    }
}

STATIC_URL = '/static/'
MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

STATIC_FILE_DIRS = (
    os.path.join(BASE_DIR, 'static')
)

LOGIN_REDIRECT_URL = 'home'
LOGOUT_REDIRECT_URL = 'home'
 

Но, ребята, переменная BASE_DIR отличалась от моей.(Я думаю, потому что он использует django 2, а я использую django 3)
Итак, я хэшировал свой и изменил переменную BASE_DIR и удалил ее из словаря баз данных.

Мой urls.py файл

 urlpatterns = [
    path('register/', UserRegisterView.as_view(), name='register'),
    path('edit_profile/', UserEditView.as_view(), name='edit_profile'),
    # path('password/', auth_views.PasswordChangeView.as_view(template_name='registration/change-password.html')),
    path('password/', PasswordsChangeView.as_view(template_name='registration/change-password.html'), name='change-password'),
    path('password_success/', password_success, name='password-success')
]   static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
 

Мой add_post.html файл

 <head>
    <title>Add Post...</title>
</head>

<h1>Add Blog Post...</h1>
<br/><br/>

<div class="form-group">
    <form method="POST" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form.media }}
        {{ form.as_p }}
        <button class="btn btn-secondary">Post</button>
    </form>
</div>
 

Мой detail_view.html файл

 <h1>{{ post.title }}</h1>
<small>By: {{ post.author.first_name }}
       {{ post.author.last_name }} -
       {{ post.post_date }}
    {% if user.is_superuser or user.is_staff and post.author.id == user.id %}
        <a href="{% url 'update_post' post.pk %}">(Edit)</a> <a href="{% url 'delete_post' post.pk %}">(Delete)</a> <br/>
    {% endif %}
    <hr>
</small>

<img src="{{ post.header_image.url }}">
 

Если я забыл отобразить файл, пожалуйста, скажите мне.

Спасибо.

Комментарии:

1. Щелкните правой кнопкой мыши на незагруженном изображении и нажмите открыть изображение в новой вкладке . Может быть ошибка. Если ошибка: ошибка не найдена, попробуйте отредактировать URL-адрес img, чтобы он выглядел следующим образом; <img src="media/{{ post.header_image }}"> . Однажды это сработало для меня

Ответ №1:

Мне нравится проблема. Мне нужно добавить static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) в свой основной urls.py