2016-06-24 2 views
2

から最初の文字を削除します私はこれが複数回頼まれましたが、誰もが到達することソリューション(およびドキュメント)は私のために動作していないようです...</p> <p>は、最初の文字を削除しようとすると知っている文字列Djangoテンプレート

コードは{{ 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_pathFieldFileオブジェクトではなく、文字列を表すことです。これがsliceフィルタに渡されます。

無効な入力が提供された場合、フィルタはサイレントモードで失敗し、指定された元の値を返します。これ以降、Djangoはオブジェクトの__str__メソッドを使用して、元の値を文字列に変換しようとします。

関連する問題

 関連する問題