显示没有循环的Django数组

时间:2016-01-20 03:43:07

标签: python django django-templates

我想知道如何分别显示每个服务数组,而不是实际遍历所有django表单查询。这就是当前构造循环的方式。但是我想只查看一些服务 - 我怎样才能实现这一目标。这是当前的循环...

<div class="form-group">
    <label class="control-label" for="id_services_0">Services</label>
       <div id="id_services"  for="id_check_{{ forloop.counter0 }}">
           {% for service in form.services.field.queryset %}
               <div style="min-height:100px;" class="col-lg-3 checkbox" id="id_check_{{ forloop.counter0 }}">
                   <label for="id_services_{{ forloop.counter0 }}">
                   <div for="id_collapse_{{ forloop.counter0 }}">
                      {% if service.picture %}
                         <img class="img-responsive" src="{{ service.picture.url }}" height="50" width="50" alt="">
                      {% else %}
                         <img style="display:none;" src="https://placehold.it/50x50" alt="">
                      {% endif %}
                    <input class="" id="id_services_{{ forloop.counter0 }}" name="services" type="checkbox" value="{{ service.id }}" data-price="{{ service.fee }}">
                    {{ service }}<br>
                    <a class="more-details" role="button" data-toggle="collapse" href="#id_collapse_{{ forloop.counter0 }}" aria-expanded="false" aria-controls="collapseExample">More Details</a>
                    <div class="collapse" id="id_collapse_{{ forloop.counter0 }}">
                       <div class="well">
                       <p>
                         <small>
                            {{ service.description }}
                         </small>
                       </p>
                       </div>
                     </div>
                   </div>
                </label>
            </div>
    {% endfor %}
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

前10

{% for service in form.services.field.queryset.all|slice:":10" %}

从2到4

{% for service in form.services.field.queryset.all|slice:"2:4" %}

第n个元素

删除for循环和

  • 第一

    {{ form.services.field.queryset.all.0 }}
    
  • 第二

    {{ form.services.field.queryset.all.1 }}
    

服务中的特定行

QuerySet和Manager:

<强>服务/ query.py

class ServiceQuerySet(QuerySet):
    def opened(self):
        return self.filter(status='OPEN')

<强>服务/ manager.py

class ServiceManager(Manager):
    def get_query_set(self):
        return ServiceQuerySet(self.model, using=self._db)

    def opened(self):
        return self.get_query_set().opened()

在模型中覆盖经理

class Service(models.Model):
    ....
    status = models.CharField(choices=['OPEN', 'CLOSE'], max_length=10)

    objects = ServiceManager()

在模板中使用:

{{ form.services.field.queryset.opened.0 }}

{% for open_service in form.services.field.queryset.opened %}