我试图在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))
我已经查看了https://docs.djangoproject.com/en/dev/topics/serialization/,但DeserializedObject并没有真正发挥作用,似乎是不必要的开销。有没有更好的方法来处理这个?泡菜还是不安全?
标准用例:在会话中一次保存多个项目 - >根据用户操作保存无,一个或多个项目。
答案 0 :(得分:0)
我最终使用了djangos模型序列化器,deserializedObject没有障碍。在这种情况下,使用pickle会更容易和安全(因为它永远不会解析用户提交的数据)但我选择了更安全的选择,以避免以后冒险。
答案 1 :(得分:0)
自从你提出这个问题后我不知道这是否是一个新功能,但是现在我在Django 1.10中只能通过直接分配在会话中存储一个未保存的模型,它就会恢复出来很好没有任何额外的工作。只需instance = request.session['thing']
,然后再<head>
。