如果第一次条件为真,则突然在django中断循环

时间:2015-04-15 15:20:36

标签: django

我在for循环中遇到问题。我想在if条件第一次为真后突然断开循环,即。我想打印一次只有一次'#循环'迭代但我知道django中没有break语句。所以请告诉我如何实现它。我认为它可以通过过滤器完成,但不知道如何。请告诉我使用过滤器或其他更好的方法来做到这一点的方法。

{% for p in subbranch_list %}
        {% if q.id == p.parentbranch_id  %}
                     <h1>Hello</h1>
            {{ break }}
        {% endif %}             
{% endfor %} 

其实我想做的是在我的project.html页面 - enter image description here

在上面的图片中,有一个侧边栏包含一些项目分支(IT,CS),它再次归类为子分支(IT1,IT2 TE),IT中有一个小的下行,我只需要显示至少有一个分支存在于分支表中。

  

我的project.html文件是 -

<div id="wrapper" class="midDiv_project">

        <!-- Navigation -->
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
            <div class="row" style="background-color:#AEAEAE;">
              <div class="col-md-3" style="background-color:hsl(0, 0%, 97%);min-height:580px;margin-lef:-100px;width:21%;border-right: 1px solid #e7e7e7;">
                  <div class="navbar-default sidebar" role="navigation" >
            <div class="sidebar-nav navbar-collapse">
                <ul class="nav" id="side-menu">
                    <li>
                        <a href="/mutech/aboutus/" class="slidebar_a"><i class="fa fa-dashboard fa-fw"></i> Dashboard</a>
                    </li>
                                      <!-- Sidebar -->

{% if branch_list %}
    {% for q in branch_list %}

            <li>
                <a href="#" class="slidebar_a"><i class="fa fa-table fa-fw"></i> {{ q.branch_title }}    
                    {# hello #}
{% for p in subbranch_list %}
        {% if q.id == p.parentbranch_id  %}
                     <span class="fa arrow"></span></a> 

            {{ break }}
        {% endif %}             
{% endfor %} 
                    {% for p1 in subbranch_list %}
                    <ul class="nav nav-second-level">
                        {% if q.id == p1.parentbranch_id  %}
                                <li><a href="#" class="slidebar_a">{{ p1.subbranch_title }}</a></li>
                        {% endif %} 
                    </ul>
                    {% endfor %}                

            </li>
    {% endfor %}  
{% endif %}     
                </ul>
            </div>
                <!-- /.sidebar-collapse -->
        </div>
        <!-- /.navbar-static-side -->

              </div>
                <div class="col-md-9" >
                    <div>

                        <div class="container" >
                        <div class="row">
                            <h2>Projects List</h2>

            {% if project_list %}
              {% for q in project_list %}
                <div class="col-md-3" style="border:1px solid blak;height:250px;margin:2%">
                    <a data-toggle="modal" href="#{{ q.project_title }}">
                    <img class="img-responsive img-hover" src="../../../media/{{q.project_image}}" alt="Error" style="height:70%; width:100%" /></a><br>
                    <center><p>{{ q.project_title }}</p></center><br>
                </div>
            {% endfor %}
            {% else %}
            <p>No Project Found</p>
          {% endif %} 
  

我的model.py文件是 -

class branch(models.Model):
    branch_title = models.CharField(max_length=50)



class subbranch(models.Model):
    parentbranch = models.ForeignKey(branch)
    subbranch_title = models.CharField(max_length=50)



class project(models.Model):
    project_title = models.CharField(max_length=50)
    project_image = models.ImageField(upload_to="Images/Project")
    project_desc = models.TextField(max_length=5000)
    project_duration = models.CharField(max_length=50)
    project_branch = models.ForeignKey(branch)
    project_subbranch = models.ForeignKey(subbranch)

有一行 -

  

{%if q.id == p.parentbranch_id%}

我需要在第一次if条件为真后循环必须终止。

1 个答案:

答案 0 :(得分:1)

最好的方法是在您的视图中执行此操作,例如brandon建议。但是,如果您想在模板here中执行此操作,则可以举例说明如何将breakcontinue实现为模板过滤器。