2011-06-15 4 views
0

je le code suivant dans mon modèle:Django question mathématique

{{ object.rating.get_percent|floatformat|add:"-100" }} 

qui sort -50

La valeur de object.rating.get_percent est 50. Je veux le soustraire du nombre 100. Donc, je m'attends à 50 en retour. Pourquoi est-ce que je reçois -50?

Répondre

3

Vous obtenez -50 car "-100" est le deuxième opérande à add. Le premier opérande est le résultat de object.rating.get_percent|floatformat.

Essentiellement votre expression est:

50 + -100 

Si vous êtes vraiment désespéré pour calculer "100 - x", vous pouvez utiliser le {% widthratio %} tag:

{% widthratio -100|add:object.rating.get_percent -100 100 %} 

Cependant, vous devriez vraiment obtenir les développeurs backend pour ajouter un filtre de template pour vous.

+0

c'est ce que je pensais, alors savez-vous comment je peux obtenir 50? J'ai regardé les docs django et le seul filtre de template mathématique qu'ils ont est add. J'ai seulement accès aux tags/variables du template frontal, donc je ne peux pas le faire en python. – Sam

+0

Donc, si 'object.rating.get_percent' est 60, vous voulez que la sortie soit 40? –

+0

@Sam Jetez un oeil à mon exemple en utilisant 'widthratio', c'est peut-être ce que vous recherchez. –