@ Исправлено
У меня проблема с тегом шаблона {% if ... in ... %}
.Я пытаюсь написать операторы, если объект не существует (равно нулю), то ничего не отображать.У моей модели было мало полей для ссылок на такие социальные медиа, как instagram, facebook, twitter и т. Д., И не каждая компания получила все социальные сети, как мы знаем.Проблема в том, что если эти утверждения не работают должным образом (я проверил документацию django), например, если компания добавила ссылки на все социальные медиа (твиттер, fb, instagram, linkedin, веб-сайт), она должна отображать изображения со ссылками наих.Но если компания не добавила ссылку на социальные сети или веб-сайт, она не должна отображать изображения.Я не знаю, почему эти утверждения не работают
Об изображениях, если я удаляю цикл {% for ... %} {% endfor %}
, тогда отображаются все изображения, даже если компания не связала никаких ссылок, так что если заявления также не работаютзатем
/ 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()])