我想知道如何分别显示每个服务数组,而不是实际遍历所有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>
答案 0 :(得分:0)
{% for service in form.services.field.queryset.all|slice:":10" %}
{% for service in form.services.field.queryset.all|slice:"2:4" %}
删除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 %}