Usando Django, estoy tratando de generar el número total de lotes en cada comunidad.
Una comunidad tiene varios lotes, y hay varias comunidades. Aquí hay un ejemplo de lo que estoy obteniendo:
Total lots: 99.Esta comunidad solo tiene 2 lotes. Son 4 comunidades con un total de 9 lotes entre ellas.
Los modelos y vistas parecen correctos. ¿Hay algún filtro que me falta o una forma diferente de escribir esto para obtener el resultado correcto?
{% if community.is_active %} <a class="panel-link" href="{% url 'community-detail' pk=community.id %}" %}> <div class="col-md-6 community_col"> <div class="community_box"> <div class="row"> <br> <div class="col-md-4 community_img"> <img src="/media/{{ community.logo }}" alt=""> </div> <div class="col-md-7 col-md-offset-1"> <h1 style="margin-bottom: -10px; margin-top: -15px;"><small>{{ community.name }}</small></h1> <h4>{{ community.city }}, {{ community.state }}</h4> <h6>Total lots: {% for lot in community.lot_set.all %}{{ lots|length }}{% endfor %}</h6> <h6>Total Active lots: </h6> <h6>Total Sold lots: </h6> <h6>Total Inactive lots: </h6> </div> </div> </div> </div> </a> {% endif %} {% endfor %}Esta lógica:
{% for lot in community.lot_set.all %}{{ lots|length }}{% endfor %} Itera a través de cada objeto de lote. Luego toma la longitud de los lots que, por lo que puedo decir, no es una variable en contexto. Si solo quisieras contar los objetos:
{{ community.lot_set.count }}haría.
Sin embargo, de cara al futuro, querrá obtener recuentos de activos, vendidos, inactivos, etc., y para hacerlo de manera eficiente, debe considerar anotar el conjunto de consultas y hacer este conteo en la base de datos: