본문 바로가기
파이썬 웹 개발

[Django] SynchronousOnlyOperation: You cannot call this from an async context - use a thread or sync_to_async

by 배추잠자리 2022. 7. 26.
반응형

[비동기 async 함수에서 ORM 조회 안되는 경우 ]

Django: SynchronousOnlyOperation: You cannot call this from an async context - use a thread or sync_to_async

 

 

# 샘플코드

async def sync_function():
    query = Models.objects.filter(status='사용').all()
    
    return 'success'

 

해당 비동기 함수에서는 Django: SynchronousOnlyOperation: You cannot call this from an async context - use a thread or sync_to_async 에러가 발생할 거에요.

 

조회가 되지 않으면, UPDATE나 DELETE를 할 수 없습니다.

 

 

■ 해결방안

 

- settings.py 파일에 설정하기.

os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = 'true'

 

 

os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = 'true'

true는 True가 아닌 스트링 형식으로 'true'를 삽입해주면 됩니다.

해당 구문을 설정해두면 비동기 함수에서도 ORM 조회를 할 수 있습니다.

 

[비동기 async 함수에서 ORM 조회 안되는 경우 ]

Django: SynchronousOnlyOperation: You cannot call this from an async context - use a thread or sync_to_async

반응형

댓글