Измените логическое значение Django со значения по умолчанию «False» на что-то вроде «No» - PullRequest
1 голос
/ 12 апреля 2019

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

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

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

urgent = models.BooleanField()

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

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

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

Urgent: False

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

Urgent: No

Ответы [ 2 ]

4 голосов
/ 12 апреля 2019

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

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

<p>Upvotes: {{ ticket.upvotes|yesno }}</p>
1 голос
/ 12 апреля 2019

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

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

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

def to_python(self, value):
        if value == 'No':
        return False
    else:
        return True
...