2017-06-13 6 views
0

Problèmes de mise en forme correcte de cette information dans mon modèle. J'ai fait des recherches sur google et j'ai débordé abondamment, mais je n'ai pas réussi à résoudre ce problème. J'utilise django-role-permissions et j'ai créé un tas de rôles, qui sont assignés au groupe de chaque utilisateur. Je veux afficher tous les groupes sur lesquels ils se trouvent sur mon modèle avec une virgule entre les deux. Je veux aussi échanger le '_' entre les noms avec un espace. Le plus proche que je suis venu est d'obtenir les noms de groupe dispayed comme ce qui suit:Affichage de Django et noms de groupes de formats dans le modèle

Driver Freight_manager System_admin Employee_manager 

J'ai essayé quelques templatetags personnalisés, mais tout ce qu'il se divise en un caractère individuel avec un « » entre. En fin de compte, je veux que ça ressemble à ce qui suit, mais je ne peux pas le comprendre:

Driver, Freight Manager, System Admin, Employee Manager 

Voici mon code de modèle:

{% for g in profile_detail.user.groups.all %} 
    {{ g.name|capfirst }} 
{% endfor %} 

Je suppose que je peux le faire en un modèle et ne pas avoir à modifier la vue. Quelqu'un peut-il m'aider avec un templatetag ou quelque chose pour que cela fonctionne? Ça me rend fou.

Répondre

0

Marque templatetag:

@register.filter(name='split') 
def split(value, arg): 
    return " ".join(value.split(arg)).title() 

HTML

{% load <file name of template tag> %} 
    {% for g in profile_detail.user.groups.all %} 
      {{ g.name|split:'_' }}, 
    {% endfor %} 
+0

Closer, mais pas tout à fait. La sortie est '['Driver'], ['Freight', 'Manager'], ['System', 'Admin'], ['Employee', 'Manager'],' –

+0

Vérifiez maintenant avec le code mis à jour –

+0

Cela a fonctionné. ..leave une virgule à la fin, mais je peux réparer cela plus tard. Merci mec. J'apprécie beaucoup! –