저는 장고를 처음 접하는 프런트 엔드 개발자입니다. 우리 포스트 그레스 DB에는 (1,2)의 값을 가진 특정 열 (server_reach)이 있습니다. 하지만 필터링 된 행 중 적어도 하나에 도달 가능한 값 (1 = 도달 할 수 없음, 2 = 도달 가능)이있는 행이 있는지 알려주는 쿼리를 작성해야합니다.Django에서 주석을 추가하는 동안 개별 값을 합산하려면 어떻게 변경합니까?
나는 처음있는 내가 쓴 칼럼의 값이 될 것이라고 (0,1)을 기반으로 들었다 :
ServerAgent.objects.values('server').filter(
app_uuid_url=app.uuid_url,
trash=False
).annotate(serverreach=Sum('server_reach'))
논리 내가 필터링 된 모든 행을 가져오고 그들을 주석 것을 간단하다 server_reaches의 합계. 이것이 0보다 크면 적어도 하나의 항목이 0이 아닙니다.
그러나 실제 DB에는 값 (1,2)이 있습니다. 그리고이 논리는 더 이상 작동하지 않습니다. 요약하기 전에 각 행의 server_reach를 '1'만큼 뺍니다. 다음과 같이 F 식을 시도했습니다
ServerAgent.objects.values('server').filter(
app_uuid_url=app.uuid_url,
trash=False
).annotate(serverreach=Sum(F('server_reach')-1))
그러나 다음과 같은 오류가 발생합니다. 이 일을하도록 도와주세요.
AttributeError: 'ExpressionNode' object has no attribute 'split'
감사합니다. 그게 꽤 창의적이지. 그걸 전혀 생각하지 않았어. 하나의 다른 메모, F식이 작동하지 않습니다. 그것에 관한 어떤 생각? – Aditya