在我的一种观点中,我有一个功能,它可以带来一些用户的一些信息。可以说,在模板(模板A)中,用户显示在表上,每个用户都有一个按钮。如果单击该按钮,您将被重定向到另一个模板(模板B)。我想做的是,当您单击按钮并将您发送到另一页时,我想显示该用户的信息。我该怎么办?
此外,用户在第一页中是随机的。我想将按钮和用户相关联,并在第二页中显示该用户的信息(一旦您单击它)
您将需要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>