簡體   English   中英

Django 拉取所有用戶列表,但顯示僅具有當前用戶憑據的多個用戶列表

[英]Django pull list of all users, but shows list of multiple users with only current users credentials

在 Django 中,我試圖獲取所有用戶的列表。 我使用以下查詢:

users = User.objects.all().order_by('id')

我能夠獲得所有用戶的列表,但它輸出所有用戶的列表,但只顯示當前用戶的憑據? 如果我有 20 個用戶,它將顯示 20 個用戶,但只顯示當前登錄用戶的信息。 例如,我想查看如下表格:

User | Email
------------
User1 | user1@test.com
User2 | user2@test.com
User3 | user3@test.com

但是如果當前登錄的用戶是User1,它會顯示:

User | Email
------------
User1 | user1@test.com
User1 | user1@test.com
User1 | user1@test.com

或者如果 User2 已登錄,它會顯示:

User | Email
------------
User2 | user2@test.com
User2 | user2@test.com
User2 | user2@test.com

這是我的view.py

def portal_users(request):
   users = User.objects.all().order_by('id')
   return render(request, 'portal/users.html', {"users": users})

模板

{% for users in users %}
       <tr>
        <td>{{user.username}}</td>
        <td>{{user.email}}</td>
       </tr>
{% endfor %}

默認情況下,模板內的user變量引用當前用戶,這就是為什么要打印當前用戶而不是users列表中的項目。 現在您可能會說“即使發生這種情況,for 循環也應該覆蓋循環內的user變量”,您是對的,但是在這種情況下,您的 for 循環是{% for users in users %} ,請注意您是使用users作為變量和可迭代對象,所以你的循環應該是{% for user in users %}

將您的模板更改為以下內容:

{% for user in users %}
<tr>
    <td>{{user.username}}</td>
    <td>{{user.email}}</td>
</tr>
{% endfor %}

您引用的是users而不是user

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM