私はこれで何時間もサークルを回ってきました。
私はprofile_pic ImageFieldのUserProfileモデルを持っています。私はユーザーの写真を保存しましたが、今は表示したいのですが、何もできません。私はdocs、so、googleを経由しましたが、結果はありませんでした。
写真をアップロードしましたが、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}}に置き換えた場合は、「現在」のラベル、「Clear」チェックボックス、画像を変更するオプションのURLが表示されます。しかし、私はイメージ自体を見ることができません。
誰かが私が間違っていることを示唆することはできますか?
@Crhis:
GET_TYPEは、次のように定義templatetagです。しかし、これはまだ動作していません。 Djangoは "media/profile_pic"(実際のイメージファイル名とパスではなくフィールド名)をレンダリングします – user1102018
上記の更新を参照してください。 –
もう一度ありがとう。それは今働きます!私は、ラッパーに関するいくつかの徹底的な文書があったと思う。これは、私が間違っていたことを理解しようとする時間を節約してしまったでしょう。乾杯! – user1102018