Как изменить расположение изображения по умолчанию в Django ImageField?

Возникли проблемы с попыткой изменить место, где Django ищет изображение по умолчанию в ImageField. Я пытаюсь сохранить изображение по умолчанию в папке в моем «медиафайле».

Код из models.py ниже:

from django.db import models
from django.contrib.auth.models import User

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='profile_pics/default.jpg', upload_to='profile_pics')

При загрузке страницы получаю ошибку 404:

Не найдено: /media/default.jpg [21/Apr/2020 18:11:48] «GET /media/default.jpg HTTP/1.1» 404 1795

Любые идеи о том, как добавить часть «profile_pics» в путь?


person tsmith41094    schedule 21.04.2020    source источник


Ответы (2)


добавить медиа-путь к вашему urlpatterns в режиме DEBUG

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
person EL hassane    schedule 21.04.2020
comment
У меня есть этот путь в моих URL-адресах. Все работает нормально, если я использую созданную мной учетную запись с изображением для использования. Я просто не могу заставить все работать, когда я хочу, чтобы он вернулся к умолчанию. - person tsmith41094; 22.04.2020

вам нужно скопировать изображение с default.jpg в каталог media/profile_pics и использовать его в качестве изображения по умолчанию для пользователей

person Ali Rn    schedule 21.04.2020
comment
Не уверен, что понимаю. У меня есть изображение с именем default.jpg, сохраненное в папке profile_pics в каталоге мультимедиа. Не знаю, что происходит - person tsmith41094; 22.04.2020
comment
Я только что заметил, что вы назвали свое изображение неправильной ссылкой, ваша ссылка /media/default.jpg, но ваше изображение находится на /media/profile_pics/default.jpg, назовите свое изображение правильной ссылкой, и оно будет работать ;) - person Ali Rn; 23.04.2020