0

我有一个模型如下:

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 ?

4

2 回答 2

3
instance.get_years_of_experience_display()
于 2013-09-03T08:33:40.070 回答
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)
于 2013-09-09T21:47:10.430 回答