Подтвердить что ты не робот

Доступ к Django field.choices

Есть ли способ (без использования формы) для доступа к значению выбора полей модели?

Я хочу сделать что-то вроде field.choices - и получить список значений либо в представлении, либо в шаблоне

4b9b3361

Ответ 1

Конечно, просто войдите в атрибут choice поля Model.

MyModel._meta.get_field('foo').choices
my_instance._meta.get_field('foo').choices

Ответ 2

Если вы объявляете свой выбор следующим образом:

class Topic(models.Model):

    PRIMARY = 1
    PRIMARY_SECONDARY = 2
    TOPIC_LEVEL = ((PRIMARY, 'Primary'),
                  (PRIMARY_SECONDARY, 'Primary & Secondary'),)

    topic_level = models.IntegerField('Topic Level', choices=TOPIC_LEVEL,
            default=1)

Это хороший способ сделать это на самом деле. См.: http://www.b-list.org/weblog/2007/nov/02/handle-choices-right-way/

Затем вы можете вернуть выбор просто с помощью Topic.TOPIC_LEVEL

Ответ 3

Я думаю, что вы ищете функцию get_fieldname_display().