장고 - Django 1.7 field lookup -- db field 검색 방식 이름짓기


참고 : https://docs.djangoproject.com/en/1.7/ref/models/querysets/

         https://docs.djangoproject.com/en/1.7/topics/db/queries/#field-lookups



 Field lookups   

-- https://docs.djangoproject.com/en/1.7/topics/db/queries/#field-lookups

- SQL where 절을 어떻게 처리할것인가 문제임.

- QuerySet methods - filter(), exclude() , get() - 의 keyword arguments.


- 기본적인 lookups 키워드 인수 형태 ( double-underscore 사용)

     field__lookuptype = value


- 예 

>>> Entry.objects.filter(pub_date__lte='2006-01-01')

---> SQL 문으로 변환하면 

       SELECT * FROM blog_entry WHERE pub_date <= '2006-01-01';



** lookup 에서 사용되는 field 는 model field 이름이여야 하지만, ForeignKey 의 경우는 

     field name + '_id

     를 사용한다. 

      예 ) 

           >>> Entry.objects.filter(blog_id=4)

            --> Entry 가 Blog 모델의 primary key (id) 에 대한 ForeignKey 가지고 있는 경우



** 장고 내장 lookups 들 


exact

iexact

contains

icontains

in

gt

gte

lt

lte

startswith

istartswith

endswith

iendswith

range

year

month

day

week_day

hour

minute

second

isnull

search

regex

iregex


-- lookup type 이 생략된경우는 exact 라고 여기면 된다. 

-- 사용자가 필요하면 custom lookup 을 만들수있다.





Posted by 자유프로그램