0
Django 1.2.3에서는 순수 Django ORM 기능으로는 수행 할 수없는 쿼리를 수행해야합니다. 예 :Django : SQL 엔진에 따라 쿼리를 실행하십시오.
result = MyModel.objects.extra(select={'stddev': 'STDDEV_SAMP(value)'}).values()
하지만 실제로이 코드는 여러 SQL 엔진 (sqllite, MySQL 및 MSSQL)에서 실행해야합니다. 따라서 settings.DATABASES['default']['engine']
을 테스트하고 엔진 관련 코드를 실행해야합니다.
이 문제에 대한 더 장고와 유사한 접근법이 있습니까? (예 : Django가 기본 데이터베이스 엔진에 따라 실행되도록 사용자 정의 함수).
감사합니다.
동의. 데이터베이스에서 UDF를 버리고 모델의 함수로 바꿉니다. –
해당 코드는 이미 메소드에 있습니다 (인스턴스 값의 표준 편차를 제공). 내가 찾고있는 건 데이터베이스에 독립적 인 Django 집계 함수'Sum' 또는'Avg'와 같은 상위 항목입니다. – Don
'settings.DATABASES [ 'default'] [ 'engine']'을 확인하는 것이 좋습니다. 다른 환경에서 다른 쿼리를 실행하려고하지만 데이터에 대한 인터페이스는 동일하게 유지됩니다. 구현에 다소 지저분한 일을하는 것이 좋으며 다른 환경에서 다른 코드를 실행하는 다른 방법을 생각할 수 없습니다 (환경을 확인하고 이에 따라 반응하는 것 외에는). –