60

モデル フィールドの選択肢の値にアクセスする (フォームを使用せずに) 方法はありますか?

field.choicesビューまたはテンプレートのいずれかで値のリストを取得して取得したいと考えています。

4

3 に答える 3

86

もちろん。choicesModel フィールドの属性にアクセスするだけです。

MyModel._meta.get_field('foo').choices
my_instance._meta.get_field('foo').choices
于 2012-08-28T20:05:22.783 に答える
13

次のように選択肢を宣言する場合:

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

于 2012-08-29T04:33:25.367 に答える
5

機能を求めていると思いますget_fieldname_display()

于 2012-08-28T19:18:55.617 に答える