@固定
我对模板标签{% if ... in ... %}
遇到问题。我正在尝试编写语句,如果对象不存在(等于Null),则不显示任何内容。我的模型中很少有用于链接到instagram,facebook,twitter等社交媒体的字段,而且并不是每个公司都知道每个社交媒体。问题是这些If语句无法正常运行(我检查了django文档),例如,如果公司已向所有社交媒体(twitter,fb,instagram,linkedin,网站)添加了链接,则其应显示带有以下链接的图像:他们。但是,如果公司未添加任何指向社交媒体或网站的链接,则不应显示图像。我不知道为什么这些陈述不起作用
关于图片,如果我删除循环{% for ... %} {% endfor %}
那么即使公司没有关联任何链接,它也会显示所有图像,因此if语句也无法正常工作
/ EDIT
我不得不更改
之类的语句% 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.py
def brands(request, slug):
brand = get_object_or_404(Company, slug=slug)
return render(request, 'company/comp_view.html', {'brand': brand})
models.py
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()])
答案 0 :(得分:1)
好,我明白了,问题是
{% if brand.website != Null %}
所以我认为django不知道这句话的意思。当我将其更改为
{% if brand.website %}
然后它应该工作,如果公司在网站字段中有任何链接,则显示图像图标,但是如果公司在网站字段中没有任何链接,则不显示图像图标。
很抱歉打开答案,我应该已经检查了没有!= Null
的情况