Когда пользователь регистрируется для моего приложения. Я получаю эту ошибку, когда он достигает страницы профиля.
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})
Я попробовал это решение, создав 2 экземпляра объекта Person и разделив их на свой шаблон с помощью 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>
Мои решения функции профиля
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})
Я читал документацию для встроенных тегов и фильтров шаблонов. Я думаю, что решение здесь - использовать (и) тег шаблона, но я не могу его правильно использовать.
Как настроить этот шаблон, чтобы сделать изображение опцией. Если у них нет изображения, оставьте его, но отобразите имя человека.
Спасибо, что помогли мне