Django—实际读取查询中的数据时

Django—实际读取查询中的数据时,django,Django,我是Django noob,如果这是一个愚蠢的简单问题,我道歉 代码如下: 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() 我希望当前的_状态和当前的_文本能够被保留

我是Django noob,如果这是一个愚蠢的简单问题,我道歉

代码如下:

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 = m.status[:]
current_text = m.text[:]

m.delete()

编辑:编辑:为什么不使用django.contrib.messages

“保留”是什么意思?意思是,我正在将当前的_状态和当前的_文本传递给模板。如果我注释掉m.delete行,则会填充当前_状态和当前_文本,但按原样,它们是空的。如果您喜欢答案,请将其标记为已接受。Python中的变量根本不是这样工作的。即使删除对象,局部变量仍会引用字符串。@Daniel我同意,如果只删除模型对象,字符串仍然可以访问,但是调用.delete方法会进行额外的清理,并删除底层数据。wierd,当我第一次尝试时,我观察到了这种行为。固定答案,建议仍然站在修复它。