我有一个模特:
class Detail(models.Model):
types_choices = (
(1, 'Sport'),
(2, 'Turbo'),
(3, 'Turbo++'),
)
car = models.ForeignKey(Car)
d_type = models.PositiveIntegerField(choices=types_choices, max_length=1)
def __unicode__(self):
return u"%s, %s" % (self.car.name, types_choices[self.d_type][1])
在管理界面中,出现错误:global name 'types_choices' is not defined
。我认为这是关于我的回归。怎么解决?我需要在管理界面中的一个字符串中使用汽车名称和'sport'(或turbo等)。
感谢。
答案 0 :(得分:2)
class Detail(models.Model):
types_choices = (
(1, 'Sport'),
(2, 'Turbo'),
(3, 'Turbo++'),
)
car = models.ForeignKey(Car)
d_type = models.PositiveIntegerField(choices=types_choices, max_length=1)
def __unicode__(self):
return u"%s, %s" % (self.car.name, self.types_choices[self.d_type][1])
答案 1 :(得分:2)
您应该使用self.get_d_type_display()
。
答案 2 :(得分:0)
您应该使用self.types_choices
。这是因为types_choices
是您的财产
Detail
上课。
Django文档在如何使用选择方面有很好的模式:https://docs.djangoproject.com/en/dev/ref/models/fields/#choices
您还可以使用self.get_d_type_display()
来获取选择字段的详细名称。