В настоящее время я пытаюсь получить изображение профиля для отображения на веб-странице, которую я создаю с использованием Django.Я следовал некоторым урокам, но изображение все еще не показывается.Я думаю, что проблема небольшая, но я не могу найти то, что мне нужно изменить или добавить в мой код, чтобы получить изображение для отображения.Я создал медиа-папку внутри корневого каталога проекта.В папке media есть папка profile_pics.Я также добавил файл default.jpg в папку мультимедиа.
---- Это MEDIA_ROOT и MEDIA_URL в settings.py ------
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
--- Это конец моего файла urls.py------
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
--- Это модель, которая содержит изображение для отображения ------
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
image = models.ImageField(default='default.jpg',
upload_to='profile_pics')
ethAddress = models.CharField(max_length=42, default='')
advertisement = models.ForeignKey(Advertisement,
on_delete=models.CASCADE, null=True, blank=True)
def __str__(self):
return f'{self.user.username}'
---- Этоэлемент в моем шаблоне для отображения изображения ------
<img class="rounded-circle account-img" src="{{ user.profile.image.url
}}">
---- Это представление, которое отображает шаблон ------
@login_required
@transaction.atomic
def profile(request):
if request.method == 'POST':
u_form = UserUpdateForm(request.POST, instance=request.user)
p_form = ProfileUpdateForm(request.POST, instance=request.user.profile)
if u_form.is_valid() and p_form.is_valid():
u_form.save()
p_form.save()
messages.success(request, f'Your account has been updated!')
return redirect('profile')
else:
u_form = UserUpdateForm(instance=request.user)
p_form = ProfileUpdateForm(instance=request.user.profile)
context = {
'u_form': u_form,
'p_form': p_form
}
return render(request, 'users/profile.html', context)