[Django] (1093, "You can't specify target table."오류
dele_id = Fee_details_invoices.objects.filter(fee_detail_id__in=fee_id_list, return_type='2').values_list('fee_detail_id', flat=True)
Fee_details_invoices.objects.filter(fee_detail_id__in=dele_id).delete()
오류 보고:
django.db.utils.DatabaseError: (1093, "You can't specify target table 'fee_details_invoices' for update in FROM clause")
오류 분석 해결:
첫 번째 줄 코드는 어떤 조건 줄의 어떤 필드를 가져오는 것을 의미한다
두 번째 줄 코드는 이 줄 값을 포함하는 기록을 삭제합니다
문서의 첫 줄 코드에 따라 되돌아오는 것은list일 거예요. 문서 봐요.
>>> Entry.objects.values_list('id', flat=True).order_by('id')[1, 2, 3, ...]
두 번째 줄 코드의 입력 매개 변수도list입니다. 문서 참조
Entry.objects.filter(id__in=[1, 3, 4])
왜 틀렸지?
debug를 통해 dele 보기id 결과
dele_id
[]
type(dele_id)
봤어, 리스트 모양으로 출력됐지만, 사실은 리스트 형식이 아니야.
해결: 두 번째 문장은dele아이디 강전 하시면 됩니다.
Fee_details_invoices.objects.filter(fee_detail_id__in=list(dele_id)).delete()
때로는 표상을 볼 수 없다.
동적 언어라도 유형이 일치하지 않으면 구덩이가 많다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.