내 관점 중 하나에는 일부 사용자의 정보를 가져 오는 기능이 있습니다. 템플릿 (템플릿 A)에서 사용자가 테이블에 표시되고 각 사용자에게 버튼이 있다고 가정 해 보겠습니다. 버튼을 클릭하면 다른 템플릿 (템플릿 B)으로 리디렉션됩니다. 제가하고 싶은 것은 버튼을 클릭하여 다른 페이지로 이동하면 해당 사용자의 정보를 표시하는 것입니다. 어떻게하나요?
또한 사용자는 첫 페이지에서 무작위입니다. 버튼과 사용자를 연결하고 두 번째 페이지에 해당 사용자의 정보를 표시하고 싶습니다 (클릭하면).
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})
및 사용자 상세보기 :
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
(checkout 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 템플릿 언어 및 djngo url 템플릿 태그
user_detail.html
다음과 같이 보일 수 있습니다.
<ul>
<li>id: {{ user.id }}</li>
<li>username: {{ user.username }}</li>
<li>name: {{ user.first_name }}</li>
</ul>
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다