我知道这已被多次询问过,但每个人都能找到的解决方案(以及文档)似乎对我不起作用......
尝试删除第一个字符
代码为{{ 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
答案 0 :(得分:7)
这应该有效:
{{ picture.picture_path.name|slice:"1:" }}
您的第一次尝试不起作用的原因是picture.picture_path
代表FieldFile
对象而不是字符串。这是传递给slice
过滤器的内容。
如果提供了无效的输入,slice
过滤器将无提示失败,并返回提供的原始值。只有在此之后,Django才会尝试使用对象的__str__
方法将原始值转换为字符串。