我有一个模型如下:
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?
答案 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)