[Django] Django ORM

GreenBeanΒ·2021λ…„ 9μ›” 28일
0
post-thumbnail

Django ORM

Django ORM μ΅œμ ν™” 쀑 ν•˜λ‚˜λ‘œμ„œ ν•„μš”ν•œ ν•„λ“œμ˜ κ°’λ§Œ κ°€μ Έμ˜€κΈ° μœ„ν•΄ values()와 values_list()λ₯Ό μ‚¬μš©

values()

  • μΏΌλ¦¬μ…‹μ˜ 값을 λ”•μ…”λ„ˆλ¦¬ ν˜•νƒœλ‘œ λ°˜ν™˜
>>> Post.objects.values().filter(id__lt=8)
<QuerySet [{'id': 6, 'title': 'title #1'}, {'id': 7, 'title': 'title #2'}]>

>>> Post.objects.filter(id__lt=8).values()
<QuerySet [{'id': 6, 'title': 'title #1'}, {'id': 7, 'title': 'title #2'}]>
  • values() λ©”μ†Œλ“œμ— μΈμžλ‘œμ„œ ν•„λ“œλͺ…을 λ„£μœΌλ©΄ ν•„λ“œ:κ°’μ˜ ν˜•νƒœλ‘œ κ°€μ Έμ˜¬ 수 있음
>>> Post.objects.filter(id__lt=8).values('title')
<QuerySet [{'title': 'title #1'}, {'title': 'title #2'}]>

values_list()

  • μΏΌλ¦¬μ…‹μ˜ 값을 νŠœν”Œ ν˜•νƒœλ‘œ λ°˜ν™˜
>>> Post.objects.filter(id__lt=8).values_list()
<QuerySet [(6, 'title #1'), (7, 'title #2')]>
  • values_list()에 μΈμžλ‘œμ„œ ν•„λ“œλͺ…을 λ„£μœΌλ©΄ ν•΄λ‹Ή ν•„λ“œμ˜ κ°’λ§Œ νŠœν”Œλ‘œ λ°˜ν™˜
>>> Post.objects.filter(id__lt=8).values_list('title')
<QuerySet [('title #1',), ('title #2',)]>
  • values_list()μ—λŠ” ν•„λ“œλͺ… 이외에 flatμ΄λΌλŠ” 인자λ₯Ό μ‚¬μš©ν•  수 있음
    • flat은 Boolean νƒ€μž…μ΄λ©° 기본값은 False
    • flat의 역할은 νŠœν”Œμ΄ μ•„λ‹Œ 리슀트둜 ν•„λ“œμ˜ 값을 λ°˜ν™˜ν•˜λŠ” 것이이기 λ•Œλ¬Έμ— ν•„λ“œκ°€ μ—¬λŸ¬ κ°œμΌλ•Œ μ‚¬μš©ν•  수 μ—†μŒ
>>> Post.objects.filter(id__lt=8).values_list(flat=True)
<QuerySet [6, 7]>

>>> Post.objects.filter(id__lt=8).values_list('title', flat=True)
<QuerySet ['title #1', 'title #2']>
profile
🌱 Backend-Dev | hwaya2828@gmail.com

0개의 λŒ“κΈ€