2021. 5. 23. 15:40ใBackend/๐ Python
views.py
from django.contrib.auth.models import User
from django.views.generic import DetailView
class AccountDetailView(DetailView):
model = User
context_object_name = 'target_user' # target์ด ๋๋ user์ ์ ๋ณด๋ฅผ ๋ณด์ผ ์ ์๋๋ก
template_name = "detail.html"
User์ detailํ ์ ๋ณด๋ฅผ ๋ณด๊ณ ์ถ์ ๋ DetailView class๋ฅผ ์์ ๋ฐ์ต๋๋ค.
model ์ ์ญ์ ๋ฏธ๋ฆฌ ์ ์๋ User ๋ชจ๋ธ์ ๊ฐ์ ธ์ต๋๋ค.
context_object_name = 'target_user'๋ ์ง์ ํด์ค์๋ค .
์ด๋ ๊ฒ target_user๋ฅผ ํ ๋นํ์ง ์์ผ๋ฉด,
๋ค๋ฅธ ์ฌ๋์ detail page ์ ๋ค์ด๊ฐ๋, ์์ ์ detail ์ ๋ณด๋ง ๋ณด์ฌ์ง๊ฒ ๋ฉ๋๋ค.
์ด๋ ์ฐ๋ฆฌ์ ์งํฅ์ ์ด ์๋๊ธฐ์, context_object_name์ ๊ผญ ํ ๋นํด์ฃผ๋๋ก ํฉ์๋ค.
*context_object_name์ DetailView() ํด๋์ค๊ฐ ์์๋ฐ๋, SingleObjectMixin ํด๋์ค ๋ด๋ถ์ ์ ์๋ ํ๋์ ๋๋ค.
template_name ์ AccountDetailView ๊ฐ ๋ ๋๋ง ๋ template ์ ์ ์ํฉ๋๋ค.
์ ๋ detail.html ์ ๋ฐ๋ก ๋ง๋ค์์ต๋๋ค.
urls.py
from django.contrib.auth.views import LogoutView, LoginView
from django.urls import path
from account.views import AccountCreateView, hello_world, AccountDetailView
app_name = "account"
urlpatterns = [
path('hello_world', hello_world, name='hello_world'),
path('login/', LoginView.as_view(template_name='login.html'), name="login"),
path('logout/', LogoutView.as_view(), name='logout'),
path('create/', AccountCreateView.as_view(), name='create'), # class์ as_view()๋ฅผ ๋ถ์ฌ์ฃผ์ด์ผ ํ๋ค.
path('detail/<int:pk>', AccountDetailView.as_view(), name='detail'),
]
target_user๋ฅผ ์ง์ ํ์๊ธฐ์, ํด๋น target_user์ ๋ง๋ pk๋ฅผ url์ ๋งคํํด์ฃผ์ด์ผ ํฉ๋๋ค.
detail.html
<div>
<div style="text-align: center; max-width: 500px; margin: 4rem auto;">
<p>
{{ target_user.date_joined }}
</p>
<h2>
{{ target_user.username }}
</h2>
</div>
</div>
AccountDetailView ์์ ์ ์ํ template_name ๋๋ก detail.html์ target_user์ detail ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ฌผ๋ก ์ด๋ ์ ์ ์ detail ์ ๋ณด์ด๊ธฐ์, ํ์๊ฐ์ ๊ณผ ๋ก๊ทธ์ธ ๊ณผ์ ์ ๊ฑฐ์น ํ์ ํ์ธ ๊ฐ๋ฅํ ์ ๋ณด์ ๋๋ค.
ChangeInfo ์ Quit ์ ๋ค์ ํฌ์คํ ์์ UpdateView์ DeleteView ์์ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค.
'Backend > ๐ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Error]Python ๊ฐ์ํ๊ฒฝ ์ค์น configure: error: Unexpected output of 'arch' on OSX (0) | 2022.10.03 |
---|---|
์ต๊ทผ ํ์ด์ฌ PS ํ๋ฉด์ ๋ฐฐ์ด ๊ฒ (0) | 2022.05.05 |
Django CBV (2) - ๋ก๊ทธ์ธ, ๋ก๊ทธ์์ ๊ตฌํ (0) | 2021.05.23 |
Django CBV (1) - ํ์๊ฐ์ (0) | 2021.05.23 |
Django Bootstrap4 ์ฐ๋ (0) | 2021.05.23 |