обработка нулей и нулевых значений в Django - PullRequest
1 голос
/ 23 февраля 2011

Если у меня есть модель с пустым полем:

class Something(models.Model):
    parameter = models.FloatField(blank=True,null=True)

Затем я хочу обработать это в представлении или шаблоне.

Если что-то имеет значение параметра.чтобы вернуть значение, и если оно равно нулю, я хочу вернуть 'N / A'.

Если я использую:

something = Something.objects.get(id=1)
output_string = 'parameter value: %s' % (something.parameter or 'N/A')

, то это работает, за исключением случая, когда что-то.parameter = 0, который также возвращает «N / A» вместо желаемого «0».

Как я могу исправить это поведение?

Есть ли способ сделать это непосредственно вшаблон

Ответы [ 2 ]

8 голосов
/ 23 февраля 2011

Используйте шаблонный шаблон default_if_none:

{{ value|default_if_none:"N/A" }}
0 голосов
/ 23 февраля 2011

Вы можете отфильтровать ваши данные по isnull (http://docs.djangoproject.com/en/dev/ref/models/querysets/#isnull)

something = Something.objects.filter(parameter__isnull=False)

Затем вы можете проверить, возвращает ли ваш запрос какие-либо результаты, и соответственно задать свой параметр:

if something:
    parameter=something[0].parameter
else:
    parameter="N/A"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...