π values() : 쿼리μ μ 리μ€νΈμμ λμ λ리 ννλ‘ λ°ννλ€.
temp = User.object.filter(id=2).values() or temp = User.object.values().filter(id=2)
λ κ°μ§ ννλ‘ λ€ κ°λ₯νλ€.
values() λ©μλμ νλλͺ μ λ£μΌλ©΄ ν΄λΉ νλλͺ κ³Ό κ°μ κ°μ Έμ¬ μ μλ€temp = User.objects.filter(hobby='μΆκ΅¬').values('email') # <QuerySet [{'email': 'root@naver.com'}]>
π values_list() : κ°μ νν ννλ‘ λ°ννλ€.
temp = User.object.filter(id=2).values_list() or temp = User.object.values_list().filter(id=2)
values_list() λ©μλμ νλλͺ μ λ£μΌλ©΄ ν΄λΉ νλλ§ κ°μ Έμ¨λ€.
temp = User.objects.filter(hobby='μΆκ΅¬').values_list('email') # <QuerySet [('root@naver.com',)]>
λν values_list() λ νλ μ΄μΈμ flat μΈμλ₯Ό μ¬μ©ν μ μλλ° flat μ Boolean νμ μ΄λ©° defaultλ Falseμ΄λ€.
flatμ μ¬μ©ν΄μ£Όλ©΄ ννμ΄ μλ 리μ€νΈ ννλ‘ νλκ°μ λ°ννλ©° νλ μΈμκ° μ¬λ¬κ° μΌλλ μ¬μ©ν μ μλ€.User.objects.filter(hobby='μΆκ΅¬').values_list('email', flat=True) # <QuerySet ['root@naver.com']>
1. filter()
- exact
μΌμΉνλ 쑰건μ μ λ ₯ν λ μ¬μ©Article.objects.filter(title__excact='titletest') Article.objects.filter(title__iexcact='titletest') # iexactλ λμλ¬Έμλ₯Ό κ΅¬λΆ X
- contains
λΆλΆ μΌμΉ 쑰건 μ λ ₯ν λ μ¬μ©Article.objects.filter(title__contains='titletest') Article.objects.filter(title__icontains='titletest') # icontainsλ λμλ¬Έμλ₯Ό κ΅¬λΆ X
- in
μ¬λ¬ 쑰건μ ν¬ν¨ν κ²½μ° μ¬μ©Article.objects.filter(title__in=['titletest','titletest22'])
- gt / lt / gte / lte
gt (greater than) : >
lt (less than) : <
gte (greater than or equal) : >=
lte (less than or equal) : <=Article.objects.filter(date__gt=datetime.date(2022.12.07) Article.objects.filter(date__lt=datetime.date(2022.12.07)
- startswith / endswith
startswith : 쑰건μΌλ‘ μμνλ λ¬Έμμ΄ κ²μ
endswith : 쑰건μΌλ‘ λλλ λ¬Έμμ΄ κ²μArticle.objects.filter(title__startswith="startword")
- union
λ κ° μ΄μμ 쿼리μ λ³μλ₯Ό νλμ 쿼리μ κ°μΌλ‘ ν©μΉλ€.temp1 = Article.objects.filter(title__exact="testtitle1") temp2 = Article.objects.filter(title__exact="testtitle2") temp3 = union(temp1, temp2)
- intersection()
κ΅μ§ν©μΌλ‘ λ κ° μ΄μμ 쿼리μ λ³μ μ€ μ€λ³΅λ κ°μ κ°μ§κ³ μ¨λ€temp1 = Article.objects.filter(title__in=["testtitle1", "testtitle2"]) temp2 = Article.objects.filter(title__in=["testtitle1", "testtitle3"]) temp3 = intersection(data1, data2)
title μ΄ soohyunμΈ λ°μ΄ν°λ₯Ό κ°μ§κ³ μ¨λ€.
π ORMμ κ·Έλκ·Έλ μ°Ύμκ°λ©΄μ νκ±°λ filter, get, all μ λλ§ μ¬μ©νμλλ° μ΄λ κ² μ 리λ₯Ό ν΄λμΌλ λ¬Έμ λ₯Ό λ§μ΄νμλ μ΄λ€ κ²μ μ¨μ μ΄λ€μμΌλ‘ νμ΄λκ°μΌ ν μ§ λ¨Έλ¦¬μμ μ λ¦¬κ° λλ€.
μ§κΈ user, chatroom, chatlog 3κ°μ λͺ¨λΈμ 보며 λ°μ΄ν°λ₯Ό μΆμΆν΄μΌ νλ κ³Όμ μ΄ μ½κ² μκ°λμ§ μμ κΈμ μ°λ©° μ°¨λΆνκ² μ 리ν΄λ³΄μλ€.
μμ filterλ§ μ μ°κ³ unionμ΄λ chain μ λλ§ μ μ¨λ νΉλ³ν λ¬Έμ λ μμ κ² κ°λ€.
μκ³ λ¦¬μ¦μ λͺ»νΌμ§ 2μ£Ό κ°κΉμ΄ λμ΄κ°κ³ μλλ° db μ‘°μμ νλ©΄μ μκ³ λ¦¬μ¦μ νΈλκ² κ°μ κΈ°λΆμ΄ λ€μ΄ ν₯λ―Έλ‘κ³ μ¬λ°λ€ γ γ
μ€λ λ!