ユーザーが自分のアプリケーションに登録すると、プロファイルページに移動したときにこのエラーが発生します。Django 'image'属性に関連付けられているファイルがありません
The 'image' attribute has no file associated with it.
Exception Type: ValueError
Error during template rendering
In template C:\o\mysite\pet\templates\profile.html, error at line 6
1 <h4>My Profile</h4>
2
3 {% if person %}
4 <ul>
5 <li>Name: {{ person.name }}</li>
6 <br><img src="{{ person.image.url }}">
Traceback Switch back to interactive view
File "C:\o\mysite\pet\views.py" in Profile
71. return render(request,'profile.html',{'board':board ,'person':person})
私は私のテンプレートは、画像を必要とし、彼はちょうど彼が編集ページに移動し、その後、彼はプロフィールページにアクセスできるページを追加しない限り、彼は画像を追加することはできません登録見えるので、このエラーが起こると思います。
マイprofile.html
<h4>My Profile</h4>
{% if person %}
<ul>
<li>Name: {{ person.name }}</li>
<br><img src="{{ person.image.url }}">
</ul>
{% endif %}
私はPersonオブジェクトの2のインスタンスを作成して、私のテンプレートでそれらを分離することによって、このソリューションを試してみましたviews.py
def Profile(request):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('world:LoginRequest'))
board = Board.objects.filter(user=request.user)
person = Person.objects.get(user=request.user)
return render(request,'profile.html',{'board':board ,'person':person})
でマイプロフィール機能それが成功しなかったならば。私はビルトインテンプレートタグやフィルタのマニュアルを読んできていますプロフィール機能への私のソリューション
def Profile(request):
if not request.user.is_authenticated():
return HttpResponseRedirect(reverse('world:LoginRequest'))
board = Board.objects.filter(user=request.user)
person = Person.objects.get(user=request.user)
bob = Person.objects.get(user=request.user)
return render(request,'profile.html',{'board':board ,'person':person,'bob':bob})
<h4>My Profile</h4>
{% if person %}
<ul>
<li>Name: {{ person.name }}</li>
</ul>
{% endif %}
{% if bob %}
<ul>
<br><img src="{{ bob.image.url }}">
</ul>
私はここで解決策を使用することだと思います(と)テンプレートタグを使用することはできません。
画像をオプションにするにはどうすればこのテンプレートを設定できますか?彼らは写真がない場合はそれを残すが、人の名前を表示します。
だから、あなたはそれのためだけの人を使用することができます
person = Person.objects.get(user=request.user)
bob = Person.objects.get(user=request.user)
、
本当の問題はDjですangoの*遅らせる*ファイルが存在しないときにエラーをスローする決定、代わりに返す必要があります。 – s29