2014-11-10 11 views
6

Come convertire il numero negativo in positivo in modello django?Converti numero negativo in numero positivo in template django?

{% for balance in balances %} 
    {{ balance.amount }} 
{% endfor %} 

Se balance.amount è un numero negativo, voglio convertirlo in numero positivo.

+0

http://stackoverflow.com/questions/19588160/multiply-in-django-template – Greg

+0

Posso farlo senza creare su misura tag modello? – kangfend

+1

La tua domanda si rivolge specificamente ai modelli. C'è una ragione per cui non vuoi farlo nella visualizzazione? –

risposta

5

Vorrei suggerire l'installazione di django-mathfilters.

allora si può semplicemente utilizzare il filtro abs in questo modo:

{% for balance in balances %} 
    {{ balance.amount|abs }} 
{% endfor %} 
4

da this SO:

{% if qty > 0 %} 
    Please, sell {{ qty }} products. 
{% elif qty < 0 %} 
    Please, buy {{ qty|slice:"1:" }} products. 
{% endif %} 
3

Se non si vuole/non può essere effettuata django-mathfilters

Si può fare un filtro personalizzato abbastanza facilmente:

from django import template 
register = template.Library() 


@register.filter(name='abs') 
def abs_filter(value): 
    return abs(value) 
1

Questo funziona senza aggiungere django-mathfilters ma non è una buona pratica.

{% if balance.amount < 0 %} 
{% widthratio balance.amount 1 -1 %} 
{% else %} 
{{ balance.amount }} 
{% endif %} 

Widthratio è significato per la creazione di grafici a barre, ma può essere usato per multiplication

+1

Oh uomo! 'widthratio' per moltiplicare! Hehe, il modo di pensare fuori dagli schemi - mi piace il più strano dei modi. Tempo per un annuncio di servizio pubblico. Se decidi di usare quanto sopra, per favore per favore aggiungi '{# widthratio viene utilizzato per moltiplicare il tempo di equilibrio.antiori -1 #}' per rendere questo codice privo di significato. –

Problemi correlati