2011-11-29 6 views
5

define new SQL functions for SQLite in Python 일 수 있습니다. 어떻게하면 장고에서이 기능을 사용할 수 있습니까?Django에서 Python 함수로 SQLite를 확장하는 방법은 무엇입니까?

예제 사용 사례는 SQLite에서 사용할 수없는 GREATEST() and LEAST() PostgreSQL 함수를 사용하는 쿼리입니다. 내 테스트 스위트는이 쿼리를 실행하며 테스트를 실행할 때 SQLite를 데이터베이스 백엔드로 사용할 수 있기를 원합니다.

답변

10

여기 호출하여 GREATEST() 및 LEAST() 메소드와 SQLite는 확장 장고 코드 예제 파이썬에 내장 된 최대()와 분() :

from django.db.backends.signals import connection_created 
from django.dispatch import receiver 

@receiver(connection_created) 
def extend_sqlite(connection=None, **kwargs): 
    connection.connection.create_function("least", 2, min) 
    connection.connection.create_function("greatest", 2, max) 

난 단지 시험이 필요 그래서 나는 이것을 test_settings.py에 넣었다. 코드의 다른 부분에있는 경우 connection.vendor == "sqlite"을 테스트해야 할 수 있습니다.

+0

감사합니다. –

관련 문제