我有一个带有level
和name
字段的模型类(关于子类别级别)。
我想在管理面板的选择下拉列表中显示每行的名称以及相应的短划线。
当我使用时:
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中不起作用的问题仍然存在。
答案 0 :(得分:1)
您的2个示例不同。 rjust
不会插入您指定的填充字符数,而是会插入填充该总长度所需的数字。如果self.name
足够长,它将返回原样