Шаблоны Django: конвертировать float в integer, если он заканчивается на .0?

В шаблоне Django существует способ преобразования float в целое число тогда и только тогда, когда оно заканчивается на .0?

У меня есть поле для популяции, которое является плавающей точкой в ​​моей базе данных. Иногда это "действительно" float, заканчивающийся на .5, но чаще он заканчивается на .0, потому что есть целая группа людей, и в таких случаях я бы просто показал целое число.

{{ place.population }} people

Любые идеи для умного способа обойти это в Django?

Ответ 1

Вы можете использовать фильтр floatformat с отрицательным аргументом!

Ответ 2

Вы можете написать тег шаблона, но я бы рекомендовал сделать этот метод на вашей модели.

class Country(models.Model):

    ...

    def get_population(self):
        if self.population == int(self.population):
            self.population = int(self.population)
        return self.population

Затем в вашем шаблоне вместо

{{ obj.population }}

Вы использовали бы это:

{{ obj.get_population }}