【问题标题】:how to use if and else in my django forloop如何在我的 django forloop 中使用 if 和 else
【发布时间】:2020-12-18 19:08:37
【问题描述】:

我正在尝试在我的 django 模板中使用 if else 语句,以便如果存在条形图,它会显示它们,但如果不存在,那么它会让我知道没有可用的条形图。

模板.html

<div class="row">
    {% for bar in bars %}
    <div class="col-md-4 col-lg-4 col-sm-12 col-xs-12" style="margin-bottom: 25px!important;">
        <div class="single-promotions text-center">
            <div class="promotions-img">
                <img src="{{bar.image.url}}" class="img-fluid" style="height: 350px; width: 100%;" alt="">
            </div>
            <div class="promotions-details">
                <h4>{{bar.name}}</h4>
                <h5><span>{{bar.opening_time}} -</span><span> {{bar.closing_time}}</span></h5>
                <h5>{{bar.address}}</h5>
                <a href="{% url 'reserve' bar.pk %}" class="read-more">Book a Table</a>
            </div>
        </div>
    </div>
    {% endfor %}
</div>

我尝试了一些方法,但无论是否存在条形,它都没有显示任何内容

【问题讨论】:

  • 尝试将 {% if bars %} 放在 for 循环之前
  • 感谢您的回答。我的错误是我使用的是 {% if bar %} 而不是 {% if bars %}

标签: django django-models django-views django-templates


【解决方案1】:

所以我意识到使用 {% if bar %} 而不是 {% if bar %} 是一个错误

模板.html

{% if bars %}
    {% for bar in bars %}
    <div class="col-md-4 col-lg-4 col-sm-12 col-xs-12" style="margin-bottom: 25px!important;">
        <div class="single-promotions text-center">
            <div class="promotions-img">
                <img src="{{bar.image.url}}" class="img-fluid" style="height: 350px; width: 100%;" alt="">
            </div>
            <div class="promotions-details">
                <h4>{{bar.name}}</h4>
                <h5><span>{{bar.opening_time}} -</span><span> {{bar.closing_time}}</span></h5>
                <h5>{{bar.address}}</h5>
                <a href="{% url 'reserve' bar.pk %}" class="read-more">Book a Table</a>
            </div>
        </div>
    </div>
    {% endfor %}
{% else %}
<h2 style="color: white!important;">
    No bars Available, Sign Up to Create a Bar. <br> 
    <small><a style="color: white!important; text-decoration: underline;" href="{% url 'register' %}">Sign Up</a></small>
</h2>                
{% endif %}

【讨论】:

    【解决方案2】:

    我还注意到另一种更简单的解决方法是使用 Django empty 模板标签。

        {% for bar in bars %}
        <div class="col-md-4 col-lg-4 col-sm-12 col-xs-12" style="margin-bottom: 25px!important;">
            <div class="single-promotions text-center">
                <div class="promotions-img">
                    <img src="{{bar.image.url}}" class="img-fluid" style="height: 350px; width: 100%;" alt="">
                </div>
                <div class="promotions-details">
                    <h4>{{bar.name}}</h4>
                    <h5><span>{{bar.opening_time}} -</span><span> {{bar.closing_time}}</span></h5>
                    <h5>{{bar.address}}</h5>
                    <a href="{% url 'reserve' bar.pk %}" class="read-more">Book a Table</a>
                </div>
            </div>
        </div>
    
        {% empty %}
          <h4>No Bars Available</h4>
        {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-25
      • 2022-01-25
      • 1970-01-01
      相关资源
      最近更新 更多