2011-09-13 9 views
1

私はDjangoのnoobですので、これがばかばかしい簡単な質問であればお詫び申し上げます。ここで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

これは、Pythonの変数がまったくどのように機能するかではありません。オブジェクトを削除しても、ローカル変数は引き続き文字列への参照を持ちます。 –

+0

@ダニエルモデルオブジェクトを削除しても文字列にはまだアクセスできますが、.delete()メソッドを呼び出すと余分なクリーンアップが行われ、基礎となるデータも消去されることに同意します。 – Thomas

+0

しかしそれはちょうど(真実ではない)(http://dpaste.com/614607/)。 –

関連する問題