打印用户组

时间:2012-11-19 09:28:45

标签: python django

我想在模板中打印有关我所有用户及其群组的信息,如下所示:

        {% for user in users %}
        <tr>
          <td>(there should be enumerate here - 1,2,3,4 etc...)</td>
          <td>{{ user.last_name }}</td>
          <td>{{ user.first_name }}</td>
          <td>
          {% for group in user.groups %}
          {{ group }}, </td>
          {% endfor %}
        </tr>
        {% endfor %}

但它不起作用:

  

'ManyRelatedManager'对象不可迭代

我还有两个问题: 的 1。如何轻松枚举用户,如下所示:

    <tr>
      <td>1</td>
      <td>Kowalski</td>
      <td>John</td>
      ...
    </tr>
    <tr>
      <td>2</td>
      <td>Smith</td>
      <td>John</td>
      ...
    </tr>
         ...

2。如何打印这样的组:

  

group1,group2,group3

代替

  

group1,group2,group3,   (最后一个逗号错了)

非常感谢。

2 个答案:

答案 0 :(得分:3)

你应该改变

{% for group in user.groups.all %}
{{group}}

答案 1 :(得分:2)

以下代码应该执行您要求的所有内容:

{% for user in users %}
    <tr>
        <td>{{ forloop.counter }}</td>
        <td>{{ user.last_name }}</td>
        <td>{{ user.first_name }}</td>
        <td>
            {% for group in user.groups.all %}
                {{ group }}
                {% if not forloop.last %},{% endif %} 
            {% endfor %}
        </td>
    </tr>
{% endfor %}

查看官方文档中的以下链接,了解有关内置forloop变量的更多信息:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#for