从Django模板中删除字符串的第一个字符

6
我知道已经有多次提出了这个问题,但每个人都达成的解决方案(以及文档)似乎对我不起作用... 试图删除第一个字符。 代码是 {{ picture.picture_path|slice:"1:" }},但它仍然输出为 ./DOF_mrD5T49.jpg。尝试去掉前导点号。我无法删除它,因为它是 picture_path 的“名称”,这可能是不可能的吗? 相关模型代码:
class Picture(models.Model):
    picture_path = models.ImageField(blank=True)

    def __str__(self):
        return self.picture_path.name

3
如果尝试使用 {{ picture.picture_path.name|slice:"1:" }},会发生什么? - solarissmoke
BAH clearly. Thanks. - manchakowski
1个回答

15

这应该可以运行:

{{ picture.picture_path.name|slice:"1:" }}
你第一次尝试失败的原因是因为picture.picture_path代表的是一个FieldFile对象,而不是一个字符串。这就是传递给slice过滤器的内容。 slice过滤器会在提供无效输入时静默失败,并返回原先提供的值。只有在此之后,Django才尝试使用对象的__str__方法将原始值转换为字符串。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接