当用户注册我的应用程序时。当他到达个人资料页面时,我收到此错误。
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})
我认为发生此错误是因为我的模板需要图像并且看到他刚刚注册他无法添加图像,除非他转到编辑页面并添加一个页面然后他可以访问个人资料页面。
我的个人资料.html
<h4>My Profile</h4>
{% if person %}
<ul>
<li>Name: {{ person.name }}</li>
<br><img src="{{ person.image.url }}">
</ul>
{% endif %}
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})
我通过创建一个 Person 对象的 2 个实例并在我的模板中用 if 分隔它们来尝试此解决方案,但它没有成功。
<h4>My Profile</h4>
{% if person %}
<ul>
<li>Name: {{ person.name }}</li>
</ul>
{% endif %}
{% if bob %}
<ul>
<br><img src="{{ bob.image.url }}">
</ul>
我对 Profile 函数的解决方案
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})
我一直在阅读内置模板标签和过滤器的文档我认为这里的解决方案是使用 (和) 模板标签,但我似乎无法正确使用它。
如何配置此模板以使图片成为选项。如果他们没有照片,请留下它,但显示人名。
感谢你们对我的帮助