[英]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.