Я новичок в Django. Я пытаюсь создать страницу, которая отображает всех пользователей, которые зарегистрировались на моем веб-сайте.
logi c, который я пытался использовать, получает идентификатор пользователя во встроенной модели пользователя.
В views.py я создал представление на основе классов, которое является DetailView, как это
from django.shortcuts import render
from django.contrib.auth.models import User
from django.views.generic import DetailView
#I have not used a ListView class but I have used a function based View
def home(request):
context = {
'users': User.objects.all(),
}
return render(request, 'home_page/home.html', context)
class UserDetailView(DetailView):
model = User
urls.py:
from django.urls import path
from .views import PostDetailView, UserDetailView
urlpatterns = [
path('', views.home, name='home_page'),
path('users/<pk>/', UserDetailView.as_view(), name='user-detail'),
]
Дома. html, я добавил это:
{% for user in users %}
<h2><a class="article-title" href="{% url 'user-detail' user.id %}">{{ user.username }}</a></h2>
{% endfor %}
Когда я щелкнул имя пользователя, он перенаправляет меня на localhost: 8000 / users / None / , и я получаю эту ошибку:
Exception Type: ValueError
Exception Value: invalid literal for int() with base 10: 'None'
Это правильный способ получить ИС пользователя из модели пользователя?