访问Django的field.choices

9-b*_*its 39 django django-models

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

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

Yuj*_*ita 53

当然,只需访问choiceModel字段的属性即可.

MyModel._meta.get_field('foo').choices
my_instance._meta.get_field('foo').choices
Run Code Online (Sandbox Code Playgroud)

  • 在您的视图中可以访问的任何内容都可以在模板中访问,您只需要将其传递到模板上下文中。由于这个以下划线开头,因此您必须手动将字段实例传递给上下文。 (2认同)

sup*_*er9 8

如果你宣布你的选择是这样的:

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)
Run Code Online (Sandbox Code Playgroud)

这是真正做到这一点的好方法.见:http://www.b-list.org/weblog/2007/nov/02/handle-choices-right-way/

然后你就可以简单地找回选择 Topic.TOPIC_LEVEL


Jin*_*ngo 6

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