Краткое описание : учитывая набор запросов myQueryset
, как выбрать max("myfield")
без фактического извлечения всех строк и выполнения max
в python?
Лучшее, что я могу придуматьиз это max([r["myfield"] for r in myQueryset.values("myfield")])
, что не очень хорошо, если есть миллионы строк.
Длинное описание : Скажем, у меня есть две модели в моем приложении Django, Город и Страна.Город имеет поле внешнего ключа для страны:
class Country(models.Model):
name = models.CharField(max_length = 256)
class City(models.Model):
name = models.CharField(max_length = 256)
population = models.IntegerField()
country = models.ForeignKey(Country, related_name = 'cities')
Это означает, что для экземпляра страны доступно .cities
.Допустим, теперь я хочу написать метод для страны под названием highest_city_population
, который возвращает население крупнейшего города.Исходя из опыта LINQ, мой естественный инстинкт - попробовать myCountry.cities.max('population')
или что-то в этом роде, но это невозможно.