0

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

        {% 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.如何打印这样的组:

组 1、组 2、组 3

反而

group1, group2, group3, (最后一个逗号是错误的)

非常感谢。

4

2 回答 2

3

你应该改变

{% for group in user.groups.all %}
{{group}}
于 2012-11-19T09:33:22.783 回答
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

于 2012-11-19T09:53:24.363 回答