์ฅ๊ณ ๋ชจ๋ธ ๊ณต์ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ฌ,
๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ปค์คํฐ๋ง์ด์ง์ ๋ฐฐ์ฐ๊ณ ์๋ค.
๋ค์์ ์ผ๋ถ ์ค์ต์ ํ๊ธฐ ์ํ ์ฝ๋ ๋ด์ฉ์ด๋ฉฐ,
ํํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ด์ฉ์ด๋ค.
admin.py ์์์ ์ผ๋ถ ์ฝ๋
@admin.register(Post) ## Wrapping(๊ฐ์ธ๋ ๋ฐฉ๋ฒ) - ๊ฐ์ผ ๋์์ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ ์ ์์
class PostAdmin(admin.ModelAdmin):
#2. ๋ค๋ฅด๊ฒ ๋ณด์ฌ์ฃผ๊ณ ์ถ์๋
list_display = ['id', 'message', 'message_length','is_public','created_at', 'updated_at'] # list_display ๋ผ๋ ์์๋ฐ์ ๊ฐ์ฒด๋ก, ๋ณด์ฌ์ง๋ ๊ฒ์ ๋ด๋น
list_display_links = ['message'] # ๋งํฌ๊ฐ ๊ธฐ๋ณธ id์ ์ฃผ์ด์ง๋๋ฐ, ํน์ ์ปฌ๋ผ์ ์ฃผ๊ณ ์ถ์ ๊ฒฝ์ฐ
list_filter = ['created_at','is_public'] #์ฐ์ธก์, ์์ฑํ ์ผ์์ ๋ฐ๋ผ์ ๋ง๋ค์ด์ง
# pass # 1. ๊ธฐ๋ณธ์ ์ผ๋ก ์ถ๋ ฅํ๊ณ ์ ํ ๋
search_fields = ['message'] #์์น ์ต์
์ ๋ง๋ฌ
ํฐ๋ฏธ๋ ์คํ
(askcompany) C:\Users\bbeee\Documents\22 Dev\askcompany>python manage.py shell
Python 3.7.13 (default, Mar 28 2022, 08:03:21) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from instagram.models import Post
>>> Post.objects.all()
<QuerySet [<Post: 11111>, <Post: 22222>, <Post: 3333>]>
>>> Post.objects.all().filter(message__icontains='1')
<QuerySet [<Post: 11111>]>
>>> qs = Post.objects.all().filter(message__icontains='1')
>>> print(qs.query)
SELECT "instagram_post"."id", "instagram_post"."message", "instagram_post"."created_at", "instagram_post"."updated_at" FROM "instagram_post" WHERE "instagram_post"."message" LIKE %1% ESCAPE '\'
์์ ๋ด์ฉ์ ํ ๋๋ก, ์ค์ ์ฅ๊ณ ๋ด๋ถ์์ db๋ ํํฐ๋ฅผ ์ฌ์ฉํ ๋, ํน์ ๋จ์ด๊ฐ ํฌํจ๋ ํ ์ด๋ธ์ ๋ด์ฉ์ ๊ตฌํ ๋ ๋ค์๊ณผ ๊ฐ์ด ์๋ํจ
shell ์์ ๋๊ฐ๋๋ exit()
์ฅ๊ณ admin ์์ gui ์์๋ ํธํ๊ฒ
์ฅ๊ณ model์์ ๋ด์ฉ ๋ณ๊ฒฝ์, ์์
1. ์ ์ฅ
2. python manage.py makemigrations (์ฑ์ด๋ฆ)
- ๋ง์ด๊ทธ๋ ์ด์ ํ์ผ์ ๋ง๋ค๊ณ
3. python manage.py migrate (์ฑ์ด๋ฆ)
- ์ค์ DB์ ์ ์ฉ
4. python manage.py showmigrations (์ฑ์ด๋ฆ)
- ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ ๋ด์ญ์ ํ์ธ ๊ฐ๋ฅํจ
- (์ฑ์ด๋ฆ) ์์ด ๊ฒ์ํ ๊ฒฝ์ฐ ์ ์ฒด ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ ๋ด์ญ์ ํ์ธ์ด ๊ฐ๋ฅํ๋ค