1
Django CursorDebugWrapper 실행 루틴을 확장하여 서버 측에서 실행 된 모든 SQL을 추적 할 수 있습니다. 다음과 같습니다요청 객체없이 Django 사용자 ID 가져 오기
class PrintQueryWrapper(django.db.backends.util.CursorDebugWrapper):
def execute(self, sql, params=()):
try:
return self.cursor.execute(sql, params)
finally:
# record sql and do other stuff
django.db.backends.util.CursorDebugWrapper = PrintQueryWrapper
문제는 내가 개별적으로이 작업을 수행하는 각 사용자 세션을 필요로한다는 것입니다, 그렇지 않으면 어디에서 와서 무엇의 개념이 모든 사용자의 모든 SQL을 기록합니다. execute()에서 사용자 ID에 액세스 할 수 있으면 각 사용자의 SQL을 쉽게 추적 할 수 있지만 요청 객체에 액세스하지 않고도이를 수행하는 방법을 알지 못합니다.
참고 : 위의 코드에 대한 크레딧을 주장 할 수 없습니다. 장고 디버그 툴바에서 유래했습니다.
감사합니다. 그것을 밖으로 시도하고 곧 결과를 게시 할 것입니다. – JCB
성공! 감사. – JCB