__str __()中的rjust()在Django中不起作用

时间:2019-02-21 18:14:18

标签: python django python-3.x django-models

我有一个带有levelname字段的模型类(关于子类别级别)。

我想在管理面板的选择下拉列表中显示每行的名称以及相应的短划线。

当我使用时:

def __str__(self):
    return self.name.rjust((self.level-1) * 4, '-')

在Django模型中,它不起作用,并不断向我显示名称而不带破折号。

如果我在纯Python脚本中使用相同的代码,它将起作用。调试显示self.level__str__() Django函数中具有正确的值。

为什么它在Django中不起作用?

更新:我用明显的方法修复了它:

def __str__(self):
    indent = '-' * (self.level-1) * 4
    return indent + self.name

但是,为什么它在Django中不起作用的问题仍然存在。

1 个答案:

答案 0 :(得分:1)

您的2个示例不同。 rjust不会插入您指定的填充字符数,而是会插入填充该总长度所需的数字。如果self.name足够长,它将返回原样