У меня есть логическое значение, которое является ложным, но я хочу, чтобы оно печаталось на веб-странице как «Нет», а не как «Ложь».

То же самое касается печати «Да» вместо «Истина», если это правда. Я предполагаю, что это возможно!

Код в моделях:

urgent = models.BooleanField()

Код в шаблоне:

<p>Upvotes: {{ ticket.urgent}}</p>

Теперь напечатать это звучит странно:

Urgent: False

Но это звучит более естественно, лучше UX и т.д .:

Urgent: No
1
jamesahorne 12 Апр 2019 в 14:13

2 ответа

Лучший ответ

Вы можете просто использовать yesno

Сопоставляет значения True, False и (необязательно) None со строками «да», «нет», «возможно» или пользовательским отображением, переданным в виде списка через запятую, и возвращает одну из этих строк в соответствии со значением :

<p>Upvotes: {{ ticket.upvotes|yesno }}</p>
4
Sayse 12 Апр 2019 в 11:25

Вы можете написать пользовательскую модель поле

Что-то вроде (я не проверял)

class CustomBoolean(models.Field):
# ...

def to_python(self, value):
        if value == 'No':
        return False
    else:
        return True
1
EvGEN Levakov 12 Апр 2019 в 11:28