0
votes

Supprimer le point décimal du chiffre transmis au modèle Django?

J'utilise Stripe pour traiter les paiements avec une application Web Django.

Les prix de la base de données sont stockés en format décimal, par exemple. 100,00

Stripe prend ceci comme $ 1 et ignore tout à droite du point décimal.

Je dois retirer le point décimal lors du passage de ce numéro à la bande.

Puis-je faire cela dans le modèle Django?


3 Réponses :


5
votes

Utilisation de Filtre de format flotté Vous pouvez le faire:

value       Template                        Output
34.23234    {{ value|floatformat:"0" }}     34
34.00000    {{ value|floatformat:"0" }}     34
39.56000    {{ value|floatformat:"0" }}     40


4 commentaires

Cela semble supprimer le point décimal et tout à la droite de celui-ci, au moins en train de regarder les exemples de la documentation. J'ai besoin de retirer le point décimal et de tout garder à la droite de cela présent. Est-ce possible avec le format de flotteur?


Vous pouvez l'arrondir à l'entier le plus proche.


Je ne veux pas m'arrêter, j'ai besoin de l'afficher sans le point décimal. Donc 340.00 doit afficher comme 34000 , pas d'arrondi


@ Jakakerankin d'accord, je vous recontacterai avec la solution.



1
votes

Je pense que vous pouvez utiliser un Filtre personnalisé dans des modèles, comme celui-ci:

{% load remove_decimal_point %}

....

{{ val|remove_decimal_point }}


1 commentaires

Je conseillerais de l'utiliser, car il pourrait y avoir des cas, où la valeur comporte plus de 2 décimales.



1
votes

Cela dépend un peu de votre implémentation. Quelque chose comme ça devrait fonctionner dans tous les cas: xxx pré>

Ceci produit: p> xxx pré>

Ce premier tour à deux décimales, multiplie par 100 et moulages entier et ensuite string. Selon votre intégration de la bande, vous pouvez ignorer la coulée en intiqueger et à la chaîne. P>

Sauter de la coulée sur Int produira un résultat comme celui-ci: P>

{{ total_price|stripeconversion }}


0 commentaires