Python 在会话中存储未保存的模型实例

Python 在会话中存储未保存的模型实例,python,django,serialization,Python,Django,Serialization,我试图在django会话中存储几个未保存的模型条目。我希望它能像这样工作: KEY = "FOOBAR" def save_entry_to_session(new_entry, session): items = deserialize(session.get(KEY)) items = append(new_entry) session.put(KEY, serialize(items)) 我已经看过了,但反序列化对象并没有真正发挥作用,似乎是不必要的开销。有没有更

我试图在django会话中存储几个未保存的模型条目。我希望它能像这样工作:

KEY = "FOOBAR"
def save_entry_to_session(new_entry, session):
    items = deserialize(session.get(KEY))
    items = append(new_entry)
    session.put(KEY, serialize(items))
我已经看过了,但反序列化对象并没有真正发挥作用,似乎是不必要的开销。有没有更好的方法来处理这个问题?泡菜还是不安全


标准用例:在会话->无保存中一次保存多个项目,根据用户操作保存一个或多个项目

我最终使用了djangos模型序列化程序,反序列化对象并不是障碍。在这种情况下,使用pickle会更容易、更安全,因为它永远不会解析用户提交的数据,但我选择了更安全的方法,以避免以后暴露的风险。

我不知道这是否是一个新功能,因为你问了这个问题,但是在Django 1.10中,我现在可以通过直接赋值在会话中存储一个未保存的模型,并且它返回时没有任何额外的工作。只需request.session['thing']=instance,然后是later instance=request.session['thing'].

如果必须存储未保存的模型,很有可能会走错方向。请描述您的使用案例。我正在创建邀请链接foo.com/invite/sdfawefFJKFE9,并希望将它们传递到视图中,以填充facebook共享按钮的href。我不想保存模型条目,因为不确定用户是否会使用该链接。我打算用ajax请求foo.com/invite/save/sdfawefFJKFE9保存模型条目。为什么需要存储未保存的模型实例?为什么不能在您认为保存模型实例有效的位置创建该模型实例?因为我需要将url传递给视图,并且仅在实际使用时保存它。我的用例是让用户在表单中输入详细信息,并完成所有验证,但是,接着转到另一页,在保存模型之前,他们阅读并接受条款和条件。