2011-06-08 22 views

Respuesta

114

Usted puede utilizar el filtro add:

{{ object.article.rating_score|add:"-100" }} 
+25

Para la multiplicación y división, puede utilizar incorrectamente la etiqueta de plantilla incorporada de 'widthratio'. Para calcular a * b use '{% widthratio a 1 b%}', para a/b use '{% widthratio a b 1%}'. Solo inconveniente, los resultados se redondean a un entero antes de regresar. [Uso de la etiqueta de plantilla widthratio de Django para multiplicación y división] (http://slacy.com/blog/2010/07/using-djangos-widthratio-template-tag-for-multiplication-division/) – michaell

+7

Utilice django-mathfilters. http://pypi.python.org/pypi/django-mathfilters – Erik

+2

@Erik que debería ser su propia respuesta, una solución mucho mejor. – nhinkle

12

Generalmente se recomienda que haga este cálculo en su vista. De lo contrario, podría usar el filtro de agregar.

+1

No permitido es incorrecto, sin embargo, en la mayoría de los casos se recomienda separar la lógica de vista de la lógica de la plantilla. [Filosofías de diseño de Django] (https://docs.djangoproject.com/en/dev/misc/design-philosophies/?from=olddocs#separate-logic-from-presentation) –

+0

¿Cómo se hace dentro del bucle en la plantilla? – bismigalis

24

Uso django-mathfilters. Además del filtro incorporado incorporado, proporciona filtros para restar, multiplicar, dividir y tomar el valor absoluto.

Para el ejemplo específico anterior, usaría {{ 100|sub:object.article.rating_score }}.

Cuestiones relacionadas