Ошибка при установке изображения по умолчанию в ImageField Django
В моей модели есть поле imagefield, которое хранит изображение для поста. Я хочу добавить туда изображение по умолчанию на случай, если оно не будет загружено. Но я получаю ошибку Атрибут 'title_image' не имеет связанного с ним файла. Если я загружаю изображение, то оно работает нормально.
Models.py
class Post(models.Model):
title_image = models.ImageField(
upload_to='Images/PostTitleImages/',
max_length=None,
default = 'Images/Image_not_found.jpg',
blank = True,
null = True)
home.html
<img src="{{post.title_image.url}}" height="350px"/>
Settings.py
STATIC_URL = 'static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static/'),
]
MEDIA_URL = 'media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('MainSite.urls'), name = "Main"),
path('account/',include('account.urls'), name = 'Accounts')
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
что я делаю не так, я проверил, что файл находится в этой директории /media/Images/PostTitleImages/
В случае media вам нужно включить тег media в ваш шаблон следующим образом:
# template
<img src="{{ media_url }}{{ post.title_image.url }}>
и в настройках добавьте контекстный процессор
# settings.py
'django.template.context_processors.media'