Django에서 원시 SQL 쿼리를 만들 때 일부 쿼리는 _ip.magic을 문자열로 가져온 다음 충분하지 않거나 너무 많은 매개 변수가 없기 때문에 문자열 형식화가 예외를 발생시킵니다.원시 SQL 쿼리에 _ip.magic이 추가되었습니다. 어떻게 피하는가?
샘플 코드는 최소한으로 감소하지만, 여전히 "마법"을 생산했다 :
> ids = (1, 4)
> curr = 3
> q = User.objects.raw(u"""
SELECT
1
WHERE
a=%s and b=%s AND a.user_id = %s
""", params=(ids, ids, curr))
> print q.query.sql
... a = _ip.magic("s and b=%s AND a.user_id = %s")
(난 그냥 성공적으로 SQL을 생성 할,이 쿼리를 실행하는 것을 의미하지 않습니다.)
을왜 _ip.magic
이 있습니까? 쿼리에 따라 때로는 단일 매개 변수를 래핑하고 때로는 매개 변수 중 일부를 래핑합니다. 그것을 제거하는 방법?
편집 : 솔루션은 automagic
을 해제했다 :
>>> _ip.options['automagic'] = 0