我正在尝试使用django实现博客应用。在主页中将有帖子列表。“ post.author.profile.image”是从数据库加载图像的路径。 “ post.author.profile.image”为“无”,我需要加载备用图像,如果存在,则应从数据库加载该图像。因此,我尝试了以下代码:
def homepage(request):
post= Post.objects.all().order_by('-date')
return render(request,'layout.html',{'posts':post})
layout.html
{% for post in posts %}
<div class="list">
<div class="con">
{% if "post.author.profile.image.url" is None %}
<img src="{% static 'images/b.png' %}" class='logo3'/>
{% else %}
<img src="{{ post.author.profile.image.url }}" class='logo3'/>
{% endif %}
</div>
</div>
{% endfor %}
运行服务器后,如果我单击检查图像标签的src中的路径为media / None.if下的代码甚至没有运行。我的代码有什么问题?
答案 0 :(得分:1)
如何检查图像是否存在?
{% if post.author.profile.image %}
<img src="{{ post.author.profile.image.url }}" class='logo3'/>
{% else %}
<img src="{% static 'images/b.png' %}" class='logo3'/>
{% endif %}
答案 1 :(得分:0)
尝试一下
{% if post.author.profile.image.url %}
<img src="{{ post.author.profile.image.url }}" class='logo3'/>
{% else %}
<img src="{% static 'images/b.png' %}" class='logo3'/>
{% endif %}
答案 2 :(得分:0)
这里
{% if "post.author.profile.image.url" is None %}
您正在测试文字字符串"post.author.profile.image.url"
是否为None,因为文字字符串永远不会是None
,所以它必须保证为假。
您想要变量本身:
{% if post.author.profile.image.url is None %}
答案 3 :(得分:-1)
{% if post.author.profile.image == 'null' %}
<img src="{% static 'images\b.jpg' %}" class="logo3">
{% else %}
<img src="{{post.author.profile.image.url}}" class="logo3">
{% endif %}
我仍然想知道这段代码是如何工作的。我之前曾尝试过,但那时可能没有用,可能是我犯了其他错误。但是这段代码正在工作。