如何在视图中访问django选择字段元组?

时间:2013-09-03 08:25:33

标签: python django

我有一个模型如下:

class EmployeeJobPost(models.Model):
    title = models.CharField(max_length=100,blank=True)
    years_of_experience = models.IntegerField(default=0, blank=True, null=True, choices=YEARS_OF_EXPERIENCE_CHOICES)

YEARS_OF_EXPERIENCE_CHOICES = (
    (0, '0-1 Years'),
    (1, '1+ Years'),
    (5, '5+ Years'),
    (10, '10+ Years'),
)

如何在django视图中访问YEARS_OF_EXPERIENCE_CHOICES?

2 个答案:

答案 0 :(得分:3)

instance.get_years_of_experience_display()

答案 1 :(得分:3)

如果您希望获得选择元组而不仅仅是当前选择的显示值,则可以通过实例的_meta属性访问模型的字段。

instance = EmployeeJobPost.objects.get(id=<some_id>)
choices = dict(instance._meta.get_field_by_name('years_of_experience')[0].flatchoices)

现在除了当前选择的选项外,您还可以访问所有其他选项。 choices.get(0)choices.get(2)等。否则,您可以创建表单字段对象并从中访问选项。您可以做的另一件事是从models.py模块中导入常量。

from my_app.models import YEARS_OF_EXPERIENCE_CHOICES

choices = dict(YEARS_OF_EXPERIENCE_CHOICES)