2016-06-24 4 views
2

Я знаю, что это было предложено несколько раз, но, кажется, не работают для меня решение, что каждый достигает (и документация) ...Удалить первый символ из строки шаблона Джанго

Попытки удалить первый символ

кодекс {{ 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

+0

BAH ясно. Благодарю. – manchakowski

ответ

3

Это должно работать:

{{ picture.picture_path.name|slice:"1:" }} 

Причина ваша первая попытка не работает, что picture.picture_path представляет собой FieldFile объект, а не строку. Это то, что передается в фильтр slice.

Фильтр slice не работает, если установлен недопустимый ввод и возвращается исходное значение, которое было отправлено. Только после этого Django пытается преобразовать это исходное значение в строку, используя метод __str__ объекта.