2016-06-24 5 views
2

Ich weiß, das mehrmals gefragt wurde, aber die Lösung, die alle erreicht (und die Dokumentation) scheint nicht für mich zu arbeiten ...erste Zeichen von String Django Vorlage

Der Versuch, erste Zeichen zu entfernen

-Code ist {{ picture.picture_path|slice:"1:" }}

aber es kommt immer noch als ./DOF_mrD5T49.jpg aus. Der Versuch, vom führenden Punkt zu kommen. Ist es möglich, dass ich es nicht entfernen kann, weil es ein "Name" von picture_path ist?

Einschlägige Modellcode:

class Picture(models.Model): 
    picture_path = models.ImageField(blank=True) 

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

Was passiert, wenn Sie versuchen, {{picture.picture_path.name | slice: "1:"}} '? – solarissmoke

+0

BAH klar. Vielen Dank. – manchakowski

Antwort

3

Dies sollte funktionieren:

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

Der Grund Ihre erste Versuch nicht funktioniert, ist, dass picture.picture_path ein FieldFile Objekt darstellt, anstatt einen String. Dies wird an den Filter slice übergeben.

Der Filter slice schlägt automatisch fehl, wenn eine ungültige Eingabe bereitgestellt wird, und gibt den ursprünglichen Wert zurück, der angegeben wurde. Erst danach versucht Django, diesen ursprünglichen Wert mithilfe der __str__-Methode des Objekts in eine Zeichenfolge zu konvertieren.

Verwandte Themen