вам понадобится 2 просмотра, один для users
, а другой для user_detail
. в первом шаблоне представления вы должны создать ссылки на второй.
представление пользователей (оформление заказа django представления на основе классов ):
# 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})
и сведения о пользователе view:
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 ):
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 язык шаблонов , а также djn go тег шаблона URL
user_detail.html
может выглядеть следующим образом:
<ul>
<li>id: {{ user.id }}</li>
<li>username: {{ user.username }}</li>
<li>name: {{ user.first_name }}</li>
</ul>