打印用户组

2024-06-17 12:29:07 发布

您现在位置:Python中文网/ 问答频道 /正文

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

        {% 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' object is not iterable

我还有两个问题: <强>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, (last comma is wrong)

非常感谢。你知道吗


Tags: 用户nameinforisgroupjohntr
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

你应该改变

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

相关问题 更多 >