๐ Django admin์ด๋?
Django ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํด์ฃผ๋ ๊ด๋ฆฌ์ ์ฑ์ ์๋ฏธํ๋ค. django.contrib.admin ์ฑ์ ํตํด ์ ๊ณต๋๊ณ ์์ผ๋ฉฐ ๋ชจ๋ธ ํด๋์ค๋ฅผ ๋ฑ๋กํ์ฌ ๊ธฐ๋ณธ์ ์ธ CRUD์ ์นUI์ ํตํด ์ ๊ณตํ๋ค.
์๋น์ค ์ด๊ธฐ์ ๊ด๋ฆฌ๋๊ตฌ๋ก ์ฌ์ฉํ๊ธฐ ์ข์ผ๋ฉฐ, ๊ด๋ฆฌ ๋๊ตฌ ๋ง๋ค ์๊ฐ์ ์ค์ผ ์ ์๋ค๋ ์ ์ด ์ฅ์ ์ด๋ค.
๐ ๋ชจ๋ธ ํด๋์ค admin์ ๋ฑ๋กํ๊ธฐ
model์ admin์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ ์๋ 3๊ฐ์ง ๋ฐฉ๋ฒ ์ค์์ ํ๋ ์ ํํด์ admin์ ๋ฑ๋กํ์ฌ ์ฌ์ฉํ๋ฉด ๋๋ค. ๋ด๊ฐ ๋ฃ๊ณ ์๋ inflearn ๊ฐ์์์๋ 3๋ฒ ๋ฐฉ๋ฒ์ ์ถ์ฒํ๋ค.
from django.contrib import admin
from .models import object
# ๋ฑ๋ก๋ฒ #1
admin.site.register(object) # ๊ธฐ๋ณธ ModelAdmin์ผ๋ก ๋์
# ๋ฑ๋ก๋ฒ #2
class objectAdmin(admin.ModelAdmin):
pass
admin.site.register(object, objectAdmin) # ์ง์ ํ ModelAdmin์ผ๋ก ๋์
# ๋ฑ๋ก๋ฒ #3
@admin.register(object)
class objectAdmin(admin.ModelAdmin):
pass
๐ admin์ ๋ฑ๋ก๋ ๋ชจ๋ธ๋ช ์ง๊ด์ ์ผ๋ก ๋ํ๋ด๊ธฐ
admin์ ๋ฑ๋ก๋๋ ๋ชจ๋ธ ๊ฐ์ฒด์ ๋ช ์ ์ง๊ด์ ์ผ๋ก ๋ํ๋ด๊ธฐ ์ํด์ Python ํน์ ๋ฉ์๋ __str__์ ์ด์ฉํ๋ค.
from django.db import models
# Create your models here.
class Post(models.Model):
message = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
def __str__(self):
return f"<{self.pk}> {self.massage}"
๐ @admin.register(Item) ์ผ๋ก ๊ตฌํ๋ admin ์์ฑ ์ ์ด
list_display ์์ฑ์ ์ด์ฉํ์ฌ admin ํ์ด์ง์ ๋ณด์ฌ์ฃผ๊ณ ์ ํ๋ ํ๋ ๊ฐ์ ์กฐ์ ํ ์ ์์ผ๋ฉฐ list_display_links์ ๋๋ฌ ํด๋น ๊ฐ์ฒด์ ๋ํ ์์ฑ๋ค์ ํ์ธ ํ ์ ์๋๋ก ์ ์ด ํ ์ ์๋ค.
from django.contrib import admin
from .models import Post
# Register your models here.
@admin.register(Post)
class Postadmin(admin.ModelAdmin):
list_display = ["message", "created_at"]
# message๋ฅผ ๋๋ฅด๋ฉด model detail๋ก ๋์ด๊ฐ๋๋ก ์ค์
list_display_links = ["message"]
search_fields ์์ฑ์ ์ด์ฉํ๋ฉด ๊ฒ์ UI์ ํตํด DB์ ๊ฒ์ ํ ์ ์๋ค.
from django.contrib import admin
from .models import Post
# Register your models here.
@admin.register(Post)
class Postadmin(admin.ModelAdmin):
list_display = ["message", "created_at"]
list_display_links = ["message", "created_at"]
search_fields = ['message']
list_filter ์์ฑ์ ์ด์ฉํ๋ฉด admin ํ์ด์ง ์ค๋ฅธ์ชฝ์ ํํฐ ์ต์ ์ด ์ถ๊ฐ๋์ด ํด๋น ํํฐ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ ์๋ค.
from django.contrib import admin
from .models import Post
# Register your models here.
@admin.register(Post)
class Postadmin(admin.ModelAdmin):
list_display = ["message", "created_at"]
list_display_links = ["message", "created_at"]
list_filter = ["created_at"]
search_fields = ['message']
'FrameWork > Django' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Django] shell ์ฌ์ฉํ๊ธฐ (0) | 2023.02.08 |
---|---|
[Django] Django project ์์ ์ static, media ์ค์ ํ๊ธฐ (0) | 2023.02.08 |
[Django] admin superuser ์์ฑ ๋ฐฉ๋ฒ (0) | 2023.02.07 |
[Django] Model Field ์ข ๋ฅ์ ์ต์ (0) | 2023.02.07 |
[Django] ๋ชจ๋ธ(ORM) ์๊ฐ (0) | 2023.02.07 |