Django Изображение отображается как сломанное при ссылке на него в шаблоне
Я пытаюсь создать страницу настроек для профилей пользователей и столкнулся с проблемой. Я включил изображение профиля в модель User, но при попытке сослаться на это ImageField в шаблоне профиля изображение отображается как неработающее. Во-первых, все остальное, связанное с хранением изображения профиля, работает. При создании учетной записи сохраняется изображение по умолчанию, то же самое происходит и при использовании формы загрузки изображения. Проблема возникает при попытке отобразить текущую картинку профиля через url модели, и изображение отображается как сломанное.
models.py
class Profile(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
id_user = models.IntegerField()
bio = models.TextField(max_length=300, blank=True)
profileimg = models.ImageField(upload_to='profile_images', default='blank-profile.jpg')
verified = models.BooleanField(default=False)
def __str__(self):
return self.user.username
views.py
def settings(request):
user_profile = Profile.objects.get(user=request.user)
if request.method == "POST":
if request.FILES.get('image') == None:
image = user_profile.profileimg
bio = request.POST['bio']
user_profile.profileimg = image
user_profile.bio = bio
user_profile.save()
if request.FILES.get('image') != None:
image = request.FILES.get('image')
bio = request.POST['bio']
user_profile.profileimg = image
user_profile.bio = bio
user_profile.save()
return redirect('settings')
return render(request, 'settings.html', {'user_profile': user_profile})
Раздел html-файла, который пытается показать изображение
<img width="100" heigh="100" src="{{ user_profile.Profileimg.url }}" />
Я также добавил все необходимые настройки MEDIA_URL/root и попробовал добавить эти настройки в urls.py, но ничего из этого не помогло. При просмотре страницы настроек она показывает только иконку по умолчанию для неработающего изображения. Пожалуйста, спасибо за любую помощь.
введите описание изображения здесь
в вашем url есть Profileimg, попробуйте profileimg.
Я не знал этого, но я предполагаю, что когда в settings.py DEBUG = True Django не отображает медиа файлы. Мне пришлось добавить это в urls.py моего проекта:
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)