Как я могу отобразить всех пользователей на моей html-странице?

Этот фрагмент кода позволяет получить требуемый вывод в терминале python

views.py

from django.contrib.auth.models import User

userList =User.objects.all()
print(userList)

выводит это в терминал

<QuerySet [<User: brad>, <User: john>]>

Я знаю, что мне нужно просмотреть QuerySet, но я не могу связать это представление с моей главной страницей.

Как я могу получить это на моей главной HTML странице?

Вот псевдокод, который вы можете попробовать,

from django.contrib.auth.models import User
from django.shortcuts import render

def index(request):
    userList =User.objects.all()
    return render(request, 'users.html', {'users': userList})

А users.html, например,

<h1>USERS</h1>
<ul>
{% for user in users %}
    <li>{{ user }}</li>
{% endfor %}
</ul>

urls.py похож на

from django.contrib import admin
from django.urls import path
from app1.views import *

urlpatterns = [
    path('', index),
    path('admin/', admin.site.urls),
]

В своем views.py создайте view как

from django.views.generic.list import ListView
from django.contrib.auth.models import User

class UserListView(ListView):

    model = User
    template_name = 'your_template_name.html'

Тогда в вашем urls.py

from django.urls import path
from yourapp.views import UserListView

urlpatterns = [
    path('userlists', UserListView.as_view(), name='user-list'),
]

Затем в вашем html цикле через object_list как

<h1>User List</h1>
<ul>
{% for user in object_list %}
    <li>{{ user.username }}</li>
{% empty %}
    <li>No users yet.</li>
{% endfor %}
</ul>
Вернуться на верх