访问Django的field.choices

时间:2012-08-28 19:11:39

标签: django django-models

有没有办法(不使用表格)来访问模型字段的“选择”值?

我想做类似field.choices的事情 - 并在视图或模板中获取值列表

3 个答案:

答案 0 :(得分:47)

当然,只需访问“模型”字段的choice属性即可。

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

答案 1 :(得分:7)

如果您宣布您的选择如下:

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

即可取回选项

答案 2 :(得分:4)

我认为您正在寻找get_fieldname_display()功能。