У меня есть очень простое поле выбора в моей модели:get_FOO_display возвращающего пустой строки
MY_TYPES = (
(1, _("Type 1")),
(2, _("Type 2")),
(3, _("Type 3"))
)
my_field = models.IntegerField(choices=MY_TYPES, default=1)
_
импортируются как from django.utils.translation import ugettext_lazy as _
Я получаю правильный результат, когда я manage.py shell_plus
. Пример:
m = MyModel.objects.get(pk=1)
m.get_my_field_display() # returns the value correctly
Однако это возвращение пустой строки в шаблоне: {{ m.get_my_field_display }}
EDIT: Я забыл упомянуть, что я использую values_list()
с моей точки зрения: MyModel.objects.values_list('my_field', 'others')
любая помощь ,
Имеет ли 'm' допустимое значение для' my_field'? – Rohan
Что отображается '{{m.my_field}}' в шаблоне? Используя созданные имена переменных, вы можете скрыть проблему. – Alasdair
'm.my_field' возвращает правильное значение Integer. Я просто заметил, что я использую values_list(), возможно, проблема. Я уточню свой вопрос. – Ali