2011-09-13 2 views
1

저는 장고 놈입니다. 그래서 이것이 바보 같은 간단한 질문 인 경우 사과드립니다.Django - 쿼리의 데이터를 실제로 읽는 경우

여기에 코드입니다 :

try: 
    m = Message.objects.get(session=request.session.session_key) 
except: 
    return {'message_status':'','message_text':''} 

current_status = m.status 
current_text = m.text 

m.delete() 

내가 CURRENT_STATUS 및 current_text 보존하는 기대,하지만 그들은되지 않습니다. 뭐가 문제 야?

감사합니다.

+0

"보존 된"이란 무엇을 의미합니까? –

+0

의미, current_status 및 current_text를 템플릿에 전달하고 있습니다. m.delete() 행을 주석 처리하면 current_status 및 current_text가 채워지지만 그대로는 비어 있습니다. 대답이 마음에 들면 –

+0

으로 표시해주세요. – Thomas

답변

0

문제를 해결하려면 개체를 삭제하기 전에 조각을 수행하여 문자열 복사본을 만드십시오.

current_status = m.status[:] 
current_text = m.text[:] 

m.delete() 

편집 : 편집 : 왜 당신은 django.contrib.messages를 사용하지 않습니까?

+0

이것은 파이썬에서 변수가 전혀 작동하지 않는 방법입니다. 개체를 삭제하더라도 로컬 변수에는 여전히 문자열에 대한 참조가 있습니다. –

+0

@ 대니얼 당신이 방금 모델 개체를 삭제해도 문자열에 여전히 액세스 할 수 있지만 .delete() 메서드를 호출하면 추가 정리가 수행되어 기본 데이터도 제거된다는 것에 동의합니다. – Thomas

+0

하지만 그건 사실이 아닙니다. (http://dpaste.com/614607/). –

관련 문제