나는 이것으로 몇 시간 동안 서클에서 돌아 다녔다.
사용자 프로필 파일에 profile_pic ImageField가 있습니다. 사용자 사진을 저장했는데 이제는 표시하고 싶지만 아무 것도 작동하지 않습니다. 나는 아무런 결과도없이, 워드 프로세서를 통해 갔다.
사진을 업로드했는데 URL이 데이터베이스에 저장되었음을 알 수 있습니다. 이 내가 가진 것입니다 : 내가 렌더링 된 HTML의 소스를 볼 때Django - ImageField에 저장된 사진을 표시하려면 어떻게해야합니까?
# 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 %}
가, 내가 볼 모두가 MEDIA_URL (즉, '미디어 /')하지만 사진의 URL입니다. {{field.url}}을 {{field}}로 대체하면 "현재"라는 라벨이 붙은 URL과 "지우기"확인란 및 이미지를 변경할 수있는 옵션이 표시됩니다. 하지만 이미지 자체를 볼 수는 없습니다.
누구든지 내가 뭘 잘못하고 있다고 제안 할 수 있습니까?
@Crhis, 감사 :
get_type과 같이 정의 templatetag이다. 그러나 이것은 여전히 작동하지 않습니다. 이제 Django는 "media/profile_pic"(실제 이미지 파일 이름 및 경로가 아닌 필드 이름)을 렌더링합니다. – user1102018
위 업데이트를 참조하십시오. –
다시 한 번 감사드립니다. 이제 작동합니다! 래퍼에 관한 철저한 문서가 있었으면 좋겠습니다. 이것은 내가 잘못하고있는 것을 알아 내려고 노력하는 시간을 절약 할 수있었습니다. 건배! – user1102018