#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