【问题标题】:Django display and format group names in templateDjango 在模板中显示和格式化组名
【发布时间】:2017-11-15 14:17:44
【问题描述】:

在我的模板中正确格式化此信息时遇到问题。我已经广泛搜索了谷歌和堆栈溢出,但我无法解决这个问题。

我正在使用 django-role-permissions 并且我创建了一堆角色,这些角色被分配给每个用户的组。我想在我的模板上显示他们所在的所有组,中间用逗号分隔。我还想用空格交换名称之间的“_”。我最接近的是让组名显示如下:

Driver Freight_manager System_admin Employee_manager

我尝试了一些自定义模板标签,但所有内容都将其拆分为一个单独的字符,中间有一个“,”。最终,我希望它看起来像下面这样,但我想不通:

Driver, Freight Manager, System Admin, Employee Manager

这是我的模板代码:

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

我假设我可以在模板中执行此操作而不必修改视图。有人可以帮助我使用模板标签或其他东西来使其正常工作吗?快把我逼疯了。

【问题讨论】:

    标签: django django-templates django-template-filters


    【解决方案1】:

    制作模板标签:

    @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 %}
    

    【讨论】:

    • 更接近,但不完全在那里。输出为['Driver'], ['Freight', 'Manager'], ['System', 'Admin'], ['Employee', 'Manager'],
    • 它起作用了...在最后留下一个逗号,但我可以稍后解决。谢啦。真的很感激!
    猜你喜欢
    • 2016-01-11
    • 2013-02-13
    • 2013-03-05
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    • 2016-03-23
    • 2010-09-25
    相关资源
    最近更新 更多