我在模型类中有一个方法,我想在这样的模型中获取选择字段的显示值,但是我得到了一个奇怪的值。
这是代码:
class Actor(models.Model):
PERSON = '0'
ROLE = '1'
AUTO = '2'
TYPE_CHOICES = (
(PERSON, 'Person'),
(ROLE, 'Role'),
(AUTO, 'Auto'),
)
alias = models.CharField(max_length=10, default='', unique=True)
name = models.CharField(max_length=255, default='')
email = models.EmailField(null=True, blank=True)
actor_type = models.CharField(max_length=1, choices=TYPE_CHOICES, default=PERSON)
long_description = models.TextField(max_length=long_description_max_length, default='', null=True, blank=True)
def get_list_fields(self):
list_fields = {
'id' : self.id,
'name' : self.alias,
'description' : self.name,
'extra_fields' : "[{}][{}]".format(
self.email,
getattr(self, 'get_actor_type_display')
)
}
return list_fields
这是我得到的结果:
{'id': 1,
'name': 'hugo',
'description': 'Hugo Luis Villalobos Canto',
'extra_fields': '[hugo@utopia-software.net][functools.partial(>, field=)]'
}
我不知道functools.partial(>, field=)
代表什么,我不知道如何获得我想要的结果:该字段当前内容的显示值。
感谢您的帮助。
答案 0 :(得分:1)
def get_list_fields(self):
list_fields = {
'id' : self.id,
'name' : self.alias,
'description' : self.name,
'extra_fields' : "[{}][{}]".format(
self.email,
self.get_actor_type_display()
)
}
return list_fields
试试这个
答案 1 :(得分:0)
您需要添加括号来调用get_display
函数:
def get_list_fields(self):
list_fields = {
'id' : self.id,
'name' : self.alias,
'description' : self.name,
'extra_fields' : "[{}][{}]".format(
self.email,
getattr(self, 'get_actor_type_display()')
)
}
return list_fields