@固定
我遇到模板标签{% if ... in ... %}
的问题。如果对象不存在(等于Null),我正在尝试编写语句,然后不显示任何内容。我的模型很少有领域可以链接到各种媒体,如Instagram,脸书,推特等。并不是每个公司都得到了我们所知道的社交媒体。问题是那些If语句不能正常工作(我检查了django文档),例如,如果公司已添加到所有社交媒体(twitter,fb,instagram,linkedin,website)的链接,它应显示带有链接的图像他们。但如果公司没有添加社交媒体或网站的任何链接,它就不应该显示图像。我不知道为什么这些陈述不起作用
关于图像,如果我删除循环{% for ... %} {% endfor %}
然后它显示所有图像,即使公司没有关联任何链接所以这if语句也不起作用然后
/编辑
我不得不改变这些陈述
% if brand.website != None %}
至
{% if brand.website %}
它解决了所有问题
comp_view.html
<div class="social-media">
{% for brand in brands %
{% if brand.website != None %}
<a class="" href="{{ brand.website }}">
<img src="/static/icons/website.png">
</a>
{% endif %}
{% if brand.facebook != None %}
<a class="" href="{{ brand.facebook }}">
<img src="/static/icons/facebook.png">
</a>
{% endif %}
{% if brand.instagram != None %}
<a class="" href="{{ brand.instagram }}">
<img src="/static/icons/instagram.png">
</a>
{% endif %}
{% if brand.twitter != None %}
<a class="" href="{{ brand.twitter }}">
<img src="/static/icons/twitter.png">
</a>
{% endif %}
{% if brand.linkedin != None %}
<a class="" href="{{ brand.linkedin }}">
<img src="/static/icons/linkedin.png">
</a>
{% endif%}
{% endfor %}
</div>
views.朋友
def brands(request, slug):
brand = get_object_or_404(Company, slug=slug)
return render(request, 'company/comp_view.html', {'brand': brand})
models.朋友
class Company(models.Model):
...
technologies = models.ManyToManyField('Stack')
website = models.TextField(max_length=150, blank=True, null=True, validators=[URLValidator()])
facebook = models.TextField(max_length=150, blank=True, null=True, validators=[URLValidator()])
instagram = models.TextField(max_length=150, blank=True, null=True, validators=[URLValidator()])
twitter = models.TextField(max_length=150, blank=True, null=True, validators=[URLValidator()])
linkedin = models.TextField(max_length=150, blank=True, null=True, validators=[URLValidator()])
好的,我得到了这个,问题是
{% if brand.website != Null %}
所以我认为django不知道这句话是什么意思。虽然我把它改成了
{% if brand.website %}
然后它应该工作,如果公司在网站领域有任何链接,然后它显示图像 - 图标,但如果公司没有网站字段中的链接,它不显示图像 - 图标。
很抱歉打开答案,我应该已经检查了没有qazxsw poi的声明