Просачиваться и упорядочивать из-за большего количества жителей

Приветствие для всех.

Я работаю с Django и я нуждаюсь в том, чтобы получить список с аккуратными городами из-за той, которой больше жителей он обладает, здесь оставляю модели, которых я использую.

class Ciudad(models.Model):
    codigo = models.CharField(max_length=4,)
    nombre = models.CharField(max_length=128)

class Persona(models.Model):
    ciudad_residencia = models.ForeignKey(Ciudad, null=True, blank=True,
                        verbose_name=_("ciudad de residencia*"), on_delete=models.PROTECT)

Идея состоит в том, чтобы мочь получать имя 5 городов с большим числом людей и показывать имя города и рядом с этим число людей в таблице в reporlab, поэтому я это храню в списке.

Я использую цикл for но мне хотелось бы знать, существует ли более оптимальный способ это делать, продолжение код поездки.

ciudades = Ciudad.objects.all()
personas = Personas.objects.all()
contador_registros = 0
for ciudad in ciudades:
    personas_ciudad = personas.filter(ciudad_residencia=ciudad)
    if personas_ciudad.count() > 0:
        tabla_personas_ciudad.append(
            [ciudad.nombre,
             personas_ciudad.count()
             ]
        )
        contador_registros = contador_registros + 1
    if contador_registros >= 5:
        break

Кроме того не, как приказывание этого меньшему числу людей большего в городе.

7
задан 30.06.2019, 17:13
0 ответов