2017-09-27 1 views
0

Dans les modèles, il y a un data.grade qui est un entier.Comment puis-je mapper l'entier au texte correspondant?

Si le data.grade == 1, je veux l'endroit montre VIP, si égal à 2, je veux montre Normal

{{ data.grade }} # there only shows 1 or 2, but I want to shows VIP or Normal 

Je suis à la recherche d'une méthode succincte à faire , parce que je pense que le if else est trop encombré ici, si j'ai 50 valeurs possibles.

Répondre

0

La méthode suggérée par Robert fonctionnera mais comme vous l'avez dit, vous avez plus de 50 valeurs, une approche if-elif ralentirait le rendu de la page. Il est préférable de calculer le mappage dans le views.py avant le rendu. Quelque chose que vous pouvez faire est:

list_of_possible_values = ['VIP','Normal','lorem','ipsum'] 
#The list above can be as long as you want it to be 
data_object = 'Query your data object here' 
value_to_display = list_of_possible_values[data_object.grade-1] 
return render('your_html_file',{'value_to_display':value_to_display} 

Je cherche la valeur à afficher dans la liste en fonction du nombre d'index. Si vous souhaitez rendre plusieurs objets data, vous pouvez ajouter le code ci-dessus dans une boucle et renvoyer une liste de chaînes value_to_display à la page à rendre.

Espérons que cela aide!