【发布时间】:2020-08-04 12:30:08
【问题描述】:
我是 Django 新手。我正在尝试构建一个页面来显示所有已在我的网站上注册的用户。
我尝试使用的逻辑是在内置用户模型中获取用户的 id。
在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'),
]
在 home.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'
这是从用户模型中获取用户身份的正确方法吗?
【问题讨论】:
标签: python django django-models