С этим я часами ходил кругами.
У меня есть модель UserProfile с profile_pic ImageField.Я сохранил фотографию пользователя и теперь хочу ее отобразить, но ничего не работает.Я просмотрел документы, ТАК, Google, безрезультатно.
Я загрузил фотографию, и я вижу, что URL был сохранен в базе данных.Вот что у меня есть:
# models.py
class UserProfile(models.Model):
...
title = models.CharField()
about_me = models.CharField()
profile_pic = models.ImageField(upload_to=content_file_name, blank=True)
# views.py
def user_details(request):
if request.method == 'POST':
form = UserProfileForm(request.POST, request.FILES, instance=request.user.get_profile())
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
form = UserProfileForm(instance=request.user.get_profile())
return render_to_response('user_details.html',
{'user': request.user, 'form': form},
context_instance=RequestContext(request))
# user_details.html
{% for field in form %}
{% if field.name != "profile_pic" %}
<!-- display regular fields -->
{{ field.label_tag }}{{ field }}
{% else %}
<!-- display the user photo -->
<img src="{{ MEDIA_URL }}{{ field.url }}" />
{% endif %}
{% endfor %}
Когда я просматриваю источник визуализированного HTML, все, что я вижу, это MEDIA_URL (то есть 'media /'), но не URL фотографии.Если я заменю {{field.url}} на {{field}}, я получу URL с меткой «В настоящее время», флажок «Очистить» и возможность изменить изображение.Но я не могу видеть само изображение.
Кто-нибудь может подсказать, что я делаю не так?