[Django] class Meta

Choi Rimยท2021๋…„ 7์›” 16์ผ
0

Django

๋ชฉ๋ก ๋ณด๊ธฐ
4/21
post-thumbnail

Django

class Meta

from django.db import models

class Test(Models.Model):
    pass

    class Meta:
        pass
  • ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ž€ Inner ํด๋ž˜์Šค๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์œ„ ํด๋ž˜์Šค์—๊ฒŒ meta data๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ์ธ๋ฐ, ์ด ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ์œ„ํ•ด class Meta๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
# Create your models here.
class Menu(models.Model):
    name = models.CharField(max_length=20)

    class Meta:
        db_table = 'menus'

class Category(models.Model):
    name = models.CharField(max_length=20)
    menu = models.ForeignKey('Menu', on_delete=models.CASCADE)

    class Meta:
        db_table = 'categories'

class Product(models.Model):
    name = models.CharField(max_length=100)
    category = models.ForeignKey('Category', on_delete=models.CASCADE)

    class Meta:
        db_table = 'products'
  • class Meta๋Š” ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค ๋•Œ ์˜ต์…˜์„ ์ง€์ •ํ•ด์ฃผ๋Š” ์šฉ๋„์ด๋‹ค.
  • class Menu์•ˆ์˜ class Meta์—๋Š” db_table = 'menus'๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ” ๋ช…์˜ ์˜ต์…˜์ด ๋“ค์–ด๊ฐ„๋‹ค.
  • class Menu(models.Model):
    name = models.CharField(max_length=20)
    • class Menu์•ˆ์—๋Š” ํ…Œ์ด๋ธ”์˜ column์ด ์ƒ์„ฑ๋œ๋‹ค.
    • name์ด ํ…Œ์ด๋ธ”์˜ column์ด ๋œ๋‹ค.

  • menu = models.ForeignKey('Menu', on_delete=models.CASCADE)
    • ์™ธ๋ž˜ํ‚ค(ForeignKey): Menu๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ชจ๋ธ์„ ์ฐธ์กฐํ•˜๊ฒ ๋‹ค.
    • CASCADE: ์œ„์˜ class Question์ด ์‚ญ์ œ๊ฐ€ ๋˜๋ฉด Choice๋‚ด์˜ question๋„ ์‚ญ์ œ๊ฐ€ ๋œ๋‹ค๋ผ๋Š” ๋œป
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ชจ์–‘์„ ๋ณด๋ฉด Categoryํ•„๋“œ๊ฐ€ Menu ํ•„๋“œ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค. ์ด ๋ชจ์–‘์„ ์ฝ”๋“œ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด ์™ธ๋ž˜ํ‚ค์ด๋‹ค.

<์ฐธ๊ณ >

profile
https://rimi0108.github.io/

0๊ฐœ์˜ ๋Œ“๊ธ€