您将需要 2 个视图,一个用于 users,另一个用于 user_detail。在第一个视图模板中,您应该创建指向第二个视图模板的链接。
用户查看(结帐django class based views):
# import other things like User model
# render shortcut to render template
from django.shortcuts import render
# this is class bassed view
from django.views import View
class UsersView(View):
# your template path (TemplateA in your case)
template_name = 'users.html'
# on get method
def get(self, request):
users = User.objects.all() # you may do something else to get data
return render(request, self.template_name, {'users': users})
和用户详情视图:
class UserDetailView(View):
template_name = 'user_detail.html'
def get(self, request, id):
user = User.objects.get(pk=id)
return render(request, self.template_name, {'user': user})
你的urls.py(结帐django URL dispatcher):
from django.urls import path
from .views import UsersView, UserDetailView
urlpatterns = [
path('users/', UsersView.as_view(), name='users'),
path('users/<int:id>/', UserDetailView.as_view(), name='user_detail'),
]
最后你的users.html 应该有一个指向其他视图的链接:
{% for user in users %}
<p><a href="{% url 'user_detail' user.id %}">{{ user.username }}</a></p>
{% endfor %}
我们将user.id 作为id 发送到user_detail 视图。
结帐django template language 和djngo url template tag
user_detail.html 可能看起来像:
<ul>
<li>id: {{ user.id }}</li>
<li>username: {{ user.username }}</li>
<li>name: {{ user.first_name }}</li>
</ul>