Python 为什么get\u field\u name\u display()不起作用?
我有一些使用的代码 下面是发生的事情:Python 为什么get\u field\u name\u display()不起作用?,python,django,Python,Django,我有一些使用的代码 下面是发生的事情: class Obj(models.model): CHOICES = ((0, 'Foo'), (1, 'Bar'), (2, 'Baz')) x = models.IntegerField(choices=CHOICES) description = models.CharField(max_length=200) ... obj = Obj(x=0) obj.description
class Obj(models.model):
CHOICES = ((0, 'Foo'),
(1, 'Bar'),
(2, 'Baz'))
x = models.IntegerField(choices=CHOICES)
description = models.CharField(max_length=200)
...
obj = Obj(x=0)
obj.description = obj.get_x_display() + ' ' + obj.id
obj.description # Expected: 'Foo 21'
此代码在shell中运行良好,但是当代码在开发服务器中运行时,结果描述为021
。发生了什么事
请注意,在调用get\u x\u display()
之前保存对象并不能解决这一问题。从数据库中获取对象的新副本确实如此,但这太可怕了,我更不愿意这样做。尝试使用
class Obj(models.model):
CHOICES = ((0, 'Foo'),
(1, 'Bar'),
(2, 'Baz'))
x = models.IntegerField(choices=CHOICES)
description = models.CharField(max_length=200)
@property
def nu(self):
return self.get_x_display()
在:obj.description=obj.nu+''+obj.id`中尝试使用
class Obj(models.model):
CHOICES = ((0, 'Foo'),
(1, 'Bar'),
(2, 'Baz'))
x = models.IntegerField(choices=CHOICES)
description = models.CharField(max_length=200)
@property
def nu(self):
return self.get_x_display()
在:obj.description=obj.nu+''+obj.id`中,您使用的是哪个Django版本?只是想知道如何添加
obj.get\u\u display()++'+obj.id
而不使用TypeError
。您使用的是哪个Django版本?只是想知道如何添加obj.get\u display()+'+obj.id而不使用TypeError
。