从自己模块内的函数获取选择字段的显示值

2024-04-26 04:24:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个模型类中有一个方法,我想在这样的模型中得到一个选项字段的显示值,但是我得到了一个奇怪的值

代码如下:

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=)代表什么,也不知道如何得到我想要的结果:字段当前内容的显示值

谢谢你的帮助


Tags: name模型selfidtruedefaultfieldsmodels
2条回答
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

试试这个

需要添加括号才能调用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

相关问题 更多 >